数组常用查询方法
2019-12-31 本文已影响0人
小福饼
// 查找数组中是否存在某元素 indexOf
// indexOf 返回首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1
var a=1;
var arry1=[1,2,3];
console.log(arry1.indexOf(a))// 0 输出索引位置
//删除数组中的某个元素 splice
//splice 返回被删除项,并改变原数组
var arry2=[4,5,6];
console.log(arry2.splice(1,1)) // [5] 返回被删除项
console.log(arry2) //[4,6]
//查找数组对象中是否存在某个元素 filter
//filter 返回一个满足条件的新的数组 不改变原数组
var arry3=[
{name:"Alice",id:0},
{name:"Bob",id:1},
{name:"Cindy",id:2}
];
let newArry=arry3.filter(item=>{
return item.id==1;
})
console.log(arry3)//[{name:"Alice",id:0},{name:"Bob",id:1},{name:"Cindy",id:2}]
console.log(newArry) // [{name:"Bob",id:1}]
var b=[1,2];
let newArry2=arry3.filter(item=>{
return b.indexOf(item.id)>-1
})
console.log(newArry2)//[{name:"Bob",id:1},{name:"Cindy",id:2}]
//其他
var listmap=new Map();
listmap=listToMap(arry3,"id","name");//从arry3中,找出id对应的name值
console.log(listmap)//{0 => "Alice", 1 => "Bob", 2 => "Cindy"}
console.log(listmap.get(1))//找出arry3中,id=1的对象里面的name值 输出Bob
//
function listToMap(list, k1, k2) {
return list.reduce((map, item) => {
return map.set(item[k1], item[k2]);
}, new Map());
}