数组常用查询方法

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());
    }
上一篇下一篇

猜你喜欢

热点阅读