// js计算数组中每个元素出现的次数
// var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
// var countedNames = names.reduce(function (allNames, name) {
// if (name in allNames) {
// allNames[name]++;
// }
// else {
// allNames[name] = 1;
// }
// return allNames;
// }, {});
// console.log(countedNames) //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}
// 数组去重 Set 和 reduce 和 for循环
// var arr=[1,2,23,23,4,5,5];
// var newarr=new Set(arr); //去重
// console.log([...newarr]);//将伪数组转化为真实的数组 //(5) [1, 2, 23, 4, 5]
// let arr = [1,2,3,4,4,1]
// let newArr = arr.reduce((pre,cur)=>{
// if(!pre.includes(cur)){
// return pre.concat(cur)
// }else{
// return pre
// }
// },[])
// console.log(newArr);// [1, 2, 3, 4]
//将多维数组转化为一维
let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]