数组去重
var unique = [...new Set(arr)]
置空数组
var arr = [1,2,3];
arr.lenght = 0;
console.log(arr); //[]
模拟map()
var arr = [ {a: 1}, {a: 2}, { a: 3}];
var result = Array.from(arr, (item) => { return item.a});
console.log(result) // [1, 2, 3]
数组转化对象
let obj = {...arr};
关于方法
Array.forEach()
没有返回值,针对每个元素调用回调,会直接改变原始数组
const array1 = [1,2,3,4,5];
array1.forEach((item,index,arr) => arr[index] = item+1);
console.log(array1); // [2,3,4,5,6]
常用,针对每个元素进行回调
const array1 = [1,2,3,4,5];
let sum = 0;
array1.forEach(item => sum += item);
console.log(sum); // 15
根据数组某一项进行分类
const update = [
{"type":"DM-1","content":"90"},
{"type":"DM-2","content":"90"},
{"type":"DM-2","content":"90"},
{"type":"DM-3","content":"90"},
{"type":"DM-3","content":"90"}
];
const arr = [];
const obj = {};
update.forEach((item,index) => {
if (arr.includes(item.type)) {
obj[item.type].push(item);
} else {
arr.push(item.type);
obj[item.type] = [item];
}
})
console.log(arr); // ["DM-1","DM-2","DM-3"]
console.log(obj);
Array.filter()
对所有元素进行判断,将满足条件的元素作为一个新的数组返回
let arr1 = [1,2,3,4,4]
let arr2 = [3,4,5,6,7]
并集
let union = new Set([...arr1,...arr2])
交集
let intersect = new Set([...arr1].filter(item => arr2.has(item)))
差集
let difference = new Set([...arr1].filter(item => !arr2.has(item)))
Array.fill()
使用给定值,填充一个数组,用于空数组的初始化非常方便,如果数组中已有元素则会全部被抹去
['a', 'b', 'c'].fill(7); // [7,7,7];
['a', 'b', 'c'].fill(7, 1, 2); // ['a',7,'c']
//如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象。
let arr = new Array(3).fill({name: "Mike"});
arr[0].name = "Ben";
console.log(arr); // [{name: "Ben"}, {name: "Ben"}, {name: "Ben"}]