附:数组操作api
https://www.runoob.com/jsref/jsref-obj-array.html
js数组中的find、filter、forEach、map四个方法的详解和应用实例
https://blog.youkuaiyun.com/lhjuejiang/article/details/80112547
1.判断数组里是否有某个字段,有就删除,没有就添加
var ccc = [1,2,3,4,5,6,7,8,9]
var ndx = ccc.findIndex(function(ele) { return ele == 10 });
if (ndx > -1) {
ccc.splice(ndx, 1);
} else {
ccc.push(10);
}
//[1,2,3,4,5,6,7,8,9,10]
2.树形数组判断某个字段并更改
var arr = [{
"type": 1,
"children": [{
"type": 1,
}]
}, {
"type": 1,
"children": [{
"type": 1,
"children": [{
"type": 1,
}, {
"type": 2,
}, {
"type": 1,
"children": [{
"type": 2,
}]
}]
}]
}]
//判断type,为1显示分类,,为2显示卡片
function formatter(arr) {
return arr.map(function(v) {
return {
...v,
type: v.type == 1 ? "分类" : "卡片",
children: v.children ? formatter(v.children) : undefined
}
})
},
console.log(formatter(arr))
3.只取数组的前几个,后面的不要(slice() 方法)
ps:填入数字如果是负数就是从后面算起(如:(-1,-3)就是倒数第一个开始到倒数第三个)
var aaa = [1,2,3,4,5,6,7,8,9,10]
var bbb = aaa.slice(0,5)
bbb//[1, 2, 3, 4, 5]
var aaa = [1,2,3,4,5,6,7,8,9,10]
var ccc = [1,2,3]
var bbb = ccc.slice(0,5)
bbb//[1, 2, 3]