一
过滤函数 filter函数可以筛选出来符合条件的item
filter,可以巧妙地去除Array的重复元素
var r, arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
//element就是数组的每一项 index下标 self就是arr本身
// indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了,
//所以重复的元素仅会保留第一个位置的元素
return this.asyncMenu.filter((item) => !item.children);
//筛选出来没有children的item
return this.asyncMenu.filter((item) => item.children);
//筛选出来有children的item
二
findIndex()方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回true时,findIndex()返回符合条件的元素的索引位置
const result = state.tabList.findIndex(item => item.name === val.name)
if(result == -1){
state.tabList.push(val)
}else{
state.currentMenu = null
}
三
find()方法用于查找数组中符合条件的第一个元素,如果没有符合条件的元素,则返回undefined
求数组中第一个大于1的值
let arr = [1, 2, 3, 4, 5];
let num = arr.find(item => item > 1);
console.log(num) //2
四
splice() 方法可用于向数组(添加/删除)元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fruits2 = fruits.splice(2, 0, "Lemon", "Kiwi");
console.log(fruits2); //结果:["Banana", "Orange", "Lemon", "Kiwi", "Apple", "Mango"]
第一个参数(2)定义了应添加新元素的位置。
第二个参数(0)定义应删除多少元素。
其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
五
slice() 方法用数组的某个片段切出新数组。
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
console.log(citrus); //结果:["Orange", "Lemon"]
六
sort() 方法以字母顺序对数组进行排序。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort(); // 对 fruits 中的元素进行排序
console.log(fruits); //结果:["Apple", "Banana", "Mango", "Orange"]
reverse() 方法反转数组中的元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort(); // 对 fruits 中的元素进行排序
fruits.reverse(); // 反转元素顺序
console.log(fruits); //结果:["Orange", "Mango", "Banana", "Apple"]
七
Math.max()返回一组数中的的最大值
var arr = [1, 2, 3];
var max = Math.max(...arr);
console.log(max); //返回 3
八
Object.assign()合并两个或多个object。
var obj1 = { a: 1, b: 2 };
var obj2 = { c: 3, d: 4 };
var obj3 = { e: 5, f: 6 };
var obj = Object.assign(obj1, obj2, obj3)
console.log(obj); //返回 { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }
九
map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
var arr = [3, 9];
var res = arr.map((x,i)=>({key: 'key'+i, value: x}));
console.log(res); //返回 [{key:"key0",value:3},{key:"key1",value:9}]