判断已知元素或者对象在数组中是否存在

2021-08-11  本文已影响0人  Amanda妍

如果要判断数组中是否存在某个元素的话很好判断

直接用数组的indexOf方法就好,存在返回当前索引不存在返回-1

    var arr=[1,2,3,4]
    arr.indexOf(3) // 2
    arr.indexOf(5) // -1

也可以通过判断该元素在数组中的下标,如果没有该元素的话 ,值为-1,:

let index = arr.findIndex(v=>v==4);
console.log(index)//如果值为-1表示数组中不存在该元素 否则存在该元素

查看数组中是否存在某个对象

    let good_obj = {
        id:1,
        name:"电视机"
    }
    let collect = [{
        id:1,
        name:"电视机"
    },
    {
        id:2,
        name:"冰箱"
    }]

第一种方式:定义一个变量 假设不存在

    let isCollect;
    collect.forEach(item=>{
        if(item.id===good_obj.id){
            // 说明已知数组中存在该对象
            isCollect = true;
        }else{
            // 说明不存在
            isCollect = false;
        }
        }   
    )

但是我们通常是需要动态的修改数组(删除或者添加对象),所以需要知道下标 第二种方式:

     let obj_index = collect.findIndex(v=>v.id===good_obj.id);
     console.log(obj_index)//如果该值为-1的话 说明已知数组中不存在该对象 
     // 然后根据obj_index的值是否为-1 决定是添加该对象到数组中还是根据下标删除该对象
     if(obj_index==-1){
         // 该商品未被收藏过
         collect.push(good_obj)
     }else{
         collect.splice(obj_index,1)
     }
        console.log(collect)
上一篇 下一篇

猜你喜欢

热点阅读