利用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中沒有,可以添加了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM