数组去重可以使用ES6的Set数据结构或者使用for循环遍历的方式。
const arr = [1, 2, 3, 2, 1];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3]
const arr = [1, 2, 3, 2, 1];
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
if (uniqueArr.indexOf(arr[i]) === -1) {
uniqueArr.push(arr[i]);
}
}
console.log(uniqueArr); // [1, 2, 3]
数组扁平化可以使用ES6的flat方法或者递归的方式。
const arr = [1, [2, 3], [4, [5, 6]]];
const flatArr = arr.flat(Infinity);
console.log(flatArr); // [1, 2, 3, 4, 5, 6]
const arr = [1, [2, 3], [4, [5, 6]]];
function flatten(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flatten(arr[i]));
} else {
result.push(arr[i]);
}
}
return result;
}
const flatArr = flatten(arr);
console.log(flatArr); // [1, 2, 3, 4, 5, 6]
以上是JavaScript中实现数组去重和数组扁平化的两种常用方式。