1、判断数组是否存在一项符合条件
let arr = ['aa', "bb", "cc", 7, 88];
console.log(arr.some(item => {
return (item + "").indexOf("a") > -1;
}));
//true
2、判断数组所有项是否都符合条件
let arr = ['aa', "bb", "cc", 7, 88];
console.log(arr.every(item => {
return (item + "").indexOf("8") > -1;
}));
//false
3、获取数组符合条件的项
let arr = ['aa', "bb", "cc", 7, 88];
console.log(arr.filter(item => {
return (item + "").indexOf("8") > -1;
}));
//[88]
4、操作数组每项
let arr = ['aa', "bb", "cc", 7, 88];
console.log(arr.map(item => {
return item + "%";
}));
//["aa%", "bb%", "cc%", "7%", "88%"]
5、数组各项总和
let arr = [50,60,70, 80];
console.log(arr.reduce((total,item) => {
return total + item;
}));
//260
6、数组去重
let arr = [50, 60, 70, 80, 60, 70, 80, 60, 70, 80, 60, 70, 80];
console.log(arr.filter((item, index, arr) => {
return arr.indexOf(item) === index;
}));
// [50, 60, 70, 80]
或者
let arr = [50, 60, 70, 80, 60, 70, 80, 60, 70, 80, 60, 70, 80];
console.log(new Set(arr));
// [50, 60, 70, 80]
7、数组排序
let arr = [ 60, 70, 80, 60, 70, 80, 60, 70, 80,50, 60, 70, 80,];
console.log(arr.sort((a,b) => b-a));
//b-a为降序,a-b为升序
// [80, 80, 80, 80, 70, 70, 70, 70, 60, 60, 60, 60, 50]
或者
let arr = [ 60, 70, 80, 60, 70, 80, 60, 70, 80,50, 60, 70, 80,];
console.log(arr.sort((a,b) => b-a).reverse());
//b-a为降序,a-b为升序
// [50, 60, 60, 60, 60, 70, 70, 70, 70, 80, 80, 80, 80]
8、对象的浅拷贝
let arr = [ 60, 70, 80, 60, 70, 80, 60, 70, 80,50, 60, 70, 80,];
let newArr = JSON.parse(JSON.stringify(arr));
newArr[0] = 1000;
console.log(arr,newArr);
//arr = [60, 70, 80, 60, 70, 80, 60, 70, 80, 50, 60, 70, 80]
//newArr = [1000, 70, 80, 60, 70, 80, 60, 70, 80, 50, 60, 70, 80]
9、对象的深拷贝
let copy = function(obj) {
let newObj = (Array.isArray(obj)) ? [] : {};
for (k in obj) {
if (obj.hasOwnProperty(k)) {
newObj[k] = obj[k]
} else {
newObj[k] = copy(obj[k]);
}
}
return newObj;
}
let obj = [{ name: "lv"}, 12, [12, 56]];
let newObj = copy(obj);
newObj[1] = 10000;
console.log(JSON.stringify(obj,null,2),JSON.stringify(newObj,null,2));
//[
// {
// "name": "lv"
// },
// 12,
// [
// 12,
// 56
// ]
//] [
// {
// "name": "lv"
// },
// 10000,
// [
// 12,
// 56
// ]
//]