//将二维数组转换成一维数组(将多维转化成一维)
//将二维数组转换成一维数组
let arr = [[0, 1], [2, 3], [4, 5]]
let newArr = arr.reduce((pre, cur) => {
return pre.concat(cur)
}, [])
console.log(newArr);
//将多维转化成一维
let arr1 = [[0, 1], 2, [3, 4, [5, 6]], 7]
const newArr2 = function (arr) {
return arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? newArr2(cur) : cur), [])
}
console.log(newArr2(arr1));
//判断字符串字符出现的次数
let str = 'aaaabbbbbbbbcccccccccccccc'
function fn(str) {
let arr = str.split('')
return arr.reduce((pre, cur) => {
if (cur in pre) {
pre[cur]++
} else {
pre[cur] = 1
}
return pre
}, {})
}
console.log(fn(str));
//以上我们统计了 字符串中所有的字母极其出现的次数
//记下来 我们求出出现最多的
let obj = fn(str)
let maxStr = null
let Max = 0
for (var cur in obj) {
if (Max < obj[cur]) {
Max = obj[cur]
maxStr = cur
}
}
console.log(`出现次数最多的是${maxStr},出现的次数是${Max}次`);
//数组去重
let arr = [1, 1, 2, 5, 6, 3, 3, 3, 3, 4]
let newArr = arr.reduce((pre, cur) => {
// console.log(cur);
if (!pre.includes(cur)) {
return pre.concat(cur)
} else {
return pre
}
}, [])
let newArr2 = arr.reduce((pre, cur) => {
// console.log(pre);
if (pre.indexOf(cur) == -1) {
return pre.concat(cur)
} else {
return pre
}
}, [])
console.log(newArr);
console.log(newArr2);