最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js如何判斷對象數(shù)組中是否存在某個對象

 更新時間:2023年04月19日 09:45:59   作者:落筆映浮華H  
這篇文章主要介紹了js如何判斷對象數(shù)組中是否存在某個對象問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

js判斷對象數(shù)組中是否存在某個對象

1. 判斷數(shù)組中是否存在某個元素

直接用數(shù)組的indexOf方法就好,存在返回當前索引不存在返回-1

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

2. 遍歷后判斷對象的屬性是否相同

arr.forEach(item=>{
? ? if(item.name==='Alex'){
? ? ? ? alert('存在這個元素');
? ? }
})

3. 動態(tài)添加或刪除對象或元素的

用這個方法的話不好操作,可能會添加或刪除掉多個,可以是用string的indexOf方法來判斷

const option = {name:'111'}
// 如果數(shù)組里面本身不存在這個對象則把這個加進去
if(JSON.stringify(arr).indexOf(JSON.stringify(option))===-1){
? ? ? ? ? ?arr.push(option); // 進行動態(tài)的操作
}

這個判斷是可以,但存在一個問題需要注意一下,如果對象的順序不一樣,是不能檢測到重復的

例如arr = [{name:'張三', sex:'男'}]

option = {sex:'男', name:'張三'}

利用上述方法檢測的話,實際上該數(shù)組是存在這個數(shù)組對象的,但如果用string的indexOf方法是不能檢測對的,用這個方法的時候這個點需要注意

4. 設一個flag來做判斷的標識

let flag = true;
let msg = '';
let arr = []
?
if(arr.length<6){
? ? arr.forEach(item=>{
? ? ? ? if(data.id===item.id){ // 對象里的唯一標識id
? ? ? ? ? ? msg = '請勿重復添加!'
? ? ? ? ? ? flag = false;
? ? ? ? }
? ? })
}else{
? ? msg = '最多添加6個!'
? ? flag = false;
}
?
if(flag){ // 如果滿足條件-數(shù)組長度小于6,當前添加的值在數(shù)組里不存在,就把值添加進去
? ? arr.push(data)
}else{ // 否則彈出提示信息
? ? alert(msg)
}

5. 利用數(shù)組API some來判斷

var result = arr.some(item=>{
? ?if(item.name==='張三'){
? ? ? return true?
? }?
})
// if 可以省略
var result = arr.some(item=>item.name==='張三')
console.log(result) // 如果arr數(shù)組對象中含有name:'張三',就會返回true,否則返回false
if(result){ // 如果存在
? // do something
?}

js對象數(shù)組根據(jù)某一屬性查找對象

js對象數(shù)組[{name: "zhangsan", age: 20}, {name: "lisi", age: 30}], 如果想查找name是zhangsan的這個對象,傳統(tǒng)方法可以根據(jù)for+if條件遍歷,也可以用map重新構造,或者組裝新對象。

1. 組裝新對象

?list.forEach(function (item) {

? ?selectObj[item.name] = item

?})

selectObj新對象結構為:{"zhangsan": {name: "zhangsan", age: 20}, "lisi": {name: "lisi", age: 30}}, 通過selectObj[zhangsan]即可獲取。

2. 或者使用es6中的新特性

list.find(item => item.name == "zhangsan")

其他的比如filter, some, every方法也都很好用。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 全系IE支持Bootstrap的解決方法

    全系IE支持Bootstrap的解決方法

    用了bootstrap模版搭建的網站,在IE7中打不開,在IE8中背景圖片都不顯示,內容排列也出現(xiàn)問題,在IE9中表現(xiàn)的最好,在IE11中出現(xiàn)彈出層中的圖片無法顯示,那么這些兼容性怎么去解決
    2015-10-10
  • 關于JavaScript中事件綁定的方法總結

    關于JavaScript中事件綁定的方法總結

    下面小編就為大家?guī)硪黄狫avaScript中事件綁定的方法總結。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • JavaScript偏函數(shù)與柯里化實例詳解

    JavaScript偏函數(shù)與柯里化實例詳解

    這篇文章主要介紹了JavaScript偏函數(shù)與柯里化,結合實例形式詳細分析了JavaScript偏函數(shù)與柯里化的概念、原理、定義、使用方法及相關操作注意事項,需要的朋友可以參考下
    2019-03-03
  • javascript判斷ie瀏覽器6/7版本加載不同樣式表的實現(xiàn)代碼

    javascript判斷ie瀏覽器6/7版本加載不同樣式表的實現(xiàn)代碼

    ie6/ie7的兼容問題很讓人苦惱,我們可以針對這兩個版本的瀏覽器單獨寫獨立的樣式表,來解決兼容問題。這里的例子以判斷ie6與ie7來加載不同的樣式表
    2011-12-12
  • bootstrap——bootstrapTable實現(xiàn)隱藏列的示例

    bootstrap——bootstrapTable實現(xiàn)隱藏列的示例

    本篇文章主要介紹了bootstrapTable實現(xiàn)隱藏列的示例,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01
  • javascript顯示用戶停留時間的簡單實例

    javascript顯示用戶停留時間的簡單實例

    這篇文章介紹了javascript顯示用戶停留時間的簡單實例,有需要的朋友可以參考一下
    2013-08-08
  • JavaScript實現(xiàn)大文件上傳的示例代碼

    JavaScript實現(xiàn)大文件上傳的示例代碼

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)大文件上傳功能的示例代碼,文中的代碼講解詳細,對我們學習JavaScript有一定幫助,感興趣可以跟隨小編一起學習一下
    2022-11-11
  • JS使用Promise時常見的5個錯誤總結

    JS使用Promise時常見的5個錯誤總結

    Promise?提供了一種優(yōu)雅的方法來處理?JS?中的異步操作。這也是避免“回調地獄”的解決方案。然而,并沒有多少開發(fā)人員了解其中的內容。因此,許多人在實踐中往往會犯錯誤。在本文中,介紹一下使用?promise?時的五個常見錯誤,希望大家能夠避免
    2022-11-11
  • 點擊標簽切換和自動切換DIV選項卡

    點擊標簽切換和自動切換DIV選項卡

    點擊標簽切換DIV的效果,在很多地方都有見到過,而且實現(xiàn)的方法有很多,本例介紹的這個可以切換和自動切換DIV選項卡
    2014-08-08
  • Bootstrap表單Form全面解析

    Bootstrap表單Form全面解析

    在進行自己的后臺改版時,大體布局都使用了bootstrap,剩下的表單部分沒理由不去使用它,對于表單的美化和布局,bootstrap做的也是很不錯的。下文給大家介紹Bootstrap表單Form全面解析,感興趣的朋友一起看下吧
    2016-06-06

最新評論

长治市| 遂溪县| 平乡县| 株洲市| 平果县| 衡阳县| 灯塔市| 读书| 绥江县| 兰溪市| 达拉特旗| 大足县| 虞城县| 南江县| 邵阳市| 麻阳| 松滋市| 石柱| 澳门| 石城县| 中西区| 抚州市| 英超| 合作市| 双城市| 贵州省| 海城市| 双鸭山市| 柳江县| 巴南区| 长白| 两当县| 宜兰市| 家居| 华池县| 阳东县| 拜泉县| 阿克陶县| 喀什市| 连云港市| 屯门区|