zoukankan      html  css  js  c++  java
  • 利用ES6中的Array.find/ Array.findIndex来判断数组中已存在某个对象

      前端开发过程中,我们会经常遇到这样的情景:比如选中某个指标obj,将其加入到数组checkedArr中({id: 1234, name: 'zzz', ...}),但是在将其选中之前要校验该指标是否已经被选择。

      以前的思路是:循环数组checkedArr,如果checkedArr[i].id===obj.id,则说明该指标已经在数组中了。

      在ES6中,数组得到扩展,新增了find和findIndex两个方法,可以用到这个情境中:

    •    find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
    •   findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。

      find方法:

    var objArr = [{id:1, name:'jiankian'}, {id:23, name:'anan'}, {id:188, name:'superme'}, {id:233, name:'jobs'}, {id:288, name:'bill', age:89}, {id:333}] ;
    var ret2 = objArr.find((v) => {
        return v.id == 233;
    });
    console.log(ret2);
    // return {id:233, name:'jobs'}
    // 当返回undefined时,则说明objArr中没有,可以添加

      findIndex方法:

    var objArr = [{id:1, name:'jiankian'}, {id:23, name:'anan'}, {id:188, name:'superme'}, {id:233, name:'jobs'}, {id:288, name:'bill', age:89}, {id:333}] ;
    var ret2 = objArr.findIndex((v) => {
        return v.id == 233;
    });
    console.log(ret2);
    // return 3
    // 当返回-1时,则说明objArr中没有,可以添加了
    
  • 相关阅读:
    安卓任意两个或多个Fragment之间的交互与刷新界面
    内存溢出和内存泄漏
    求直方图围成的最大矩形面积
    判断一个字符串是否是由另2个字符串交错组成的
    矩阵的旋转
    求滑动窗口的最大值
    面向过程和面向对象的区别
    关于丑数
    求连续子数组的最大和
    多数投票算法(Majority Vote Algorithm)
  • 原文地址:https://www.cnblogs.com/zhengxj1991/p/8883040.html
Copyright © 2011-2022 走看看