1、批量制造数据
一、创建空数组,使用for循环,批量push数据
function createData() {
const data = [];
for (let i = 0; i < 1000; i++){
data.push({
name: `name${i}`
})
}
return data;
}
const data = createData();
console.log(data);
二、创建空数组,用fill填充,然后map
function createData() {
return new Array(1000).fill(null).map((v, i) => ({name: `name${i}`}))
}
const data = createData();
console.log(data);
三、Array.from 第二个初始化返回数据
function createData() {
return Array.from({length: 1000}, (v, i) => ({name: `name${i}`}))
}
const data = createData();
console.log(data);
2、数组合并去重
一、ES6 Set去重
const arr1 = [1, 2, 3]
const arr2 = [3, 4, 5]
console.log(new Set([...arr1, ...arr2])) // => [1, 2, 3, 4, 5]
二、filter筛选,indexOf判断是否存在
const arr1 = [1, 2, 3, 3, 4, 2]
const arr2 = [3, 4, 5]
function mergeArray(arr1, arr2) {
return [...arr1, ...arr2].filter((cur, index, arr) => arr.indexOf(cur, index + 1)
}
三、对象去重
const arr1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
const arr2 = [{ id: 3 }, { id: 4 }, { id: 5 }];
console.log(Array.from(new Set([...arr1, ...arr2])));
// [ { id: 1 }, { id: 2 }, { id: 3 }, { id: 3 }, { id: 4 }, { id: 5 } ]
// 这样对象都是独立的引用,无法去除属性相同的数据
// 可以这样做达到目的
function mergeRepeatArray(arr1, arr2) {
let obj= {}, newArr = [];
let arr = [...arr1, ...arr2];
for (let i = 0; i < arr.length; i ++){
if (!obj[arr[i].id]) {
obj[arr[i].id] = arr[i];
newArr.push(arr[i])
}
}
return newArr;
}