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

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

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

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

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

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

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

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

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

3. 動(dòng)態(tài)添加或刪除對(duì)象或元素的

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

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

這個(gè)判斷是可以,但存在一個(gè)問題需要注意一下,如果對(duì)象的順序不一樣,是不能檢測(cè)到重復(fù)的

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

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

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

4. 設(shè)一個(gè)flag來做判斷的標(biāo)識(shí)

let flag = true;
let msg = '';
let arr = []
?
if(arr.length<6){
? ? arr.forEach(item=>{
? ? ? ? if(data.id===item.id){ // 對(duì)象里的唯一標(biāo)識(shí)id
? ? ? ? ? ? msg = '請(qǐng)勿重復(fù)添加!'
? ? ? ? ? ? flag = false;
? ? ? ? }
? ? })
}else{
? ? msg = '最多添加6個(gè)!'
? ? flag = false;
}
?
if(flag){ // 如果滿足條件-數(shù)組長(zhǎng)度小于6,當(dāng)前添加的值在數(shù)組里不存在,就把值添加進(jìn)去
? ? 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ù)組對(duì)象中含有name:'張三',就會(huì)返回true,否則返回false
if(result){ // 如果存在
? // do something
?}

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

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

1. 組裝新對(duì)象

?list.forEach(function (item) {

? ?selectObj[item.name] = item

?})

selectObj新對(duì)象結(jié)構(gòu)為:{"zhangsan": {name: "zhangsan", age: 20}, "lisi": {name: "lisi", age: 30}}, 通過selectObj[zhangsan]即可獲取。

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

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

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

    全系IE支持Bootstrap的解決方法

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

    關(guān)于JavaScript中事件綁定的方法總結(jié)

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

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

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

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

    ie6/ie7的兼容問題很讓人苦惱,我們可以針對(duì)這兩個(gè)版本的瀏覽器單獨(dú)寫?yīng)毩⒌臉邮奖?,來解決兼容問題。這里的例子以判斷ie6與ie7來加載不同的樣式表
    2011-12-12
  • bootstrap——bootstrapTable實(shí)現(xiàn)隱藏列的示例

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

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

    javascript顯示用戶停留時(shí)間的簡(jiǎn)單實(shí)例

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

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

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

    JS使用Promise時(shí)常見的5個(gè)錯(cuò)誤總結(jié)

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

    點(diǎn)擊標(biāo)簽切換和自動(dòng)切換DIV選項(xiàng)卡

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

    Bootstrap表單Form全面解析

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

最新評(píng)論

漳浦县| 花莲县| 清远市| 嘉定区| 白朗县| 阜新市| 滨海县| 大冶市| 杂多县| 贡觉县| 阆中市| 永兴县| 福鼎市| 菏泽市| 年辖:市辖区| 鹤山市| 仁怀市| 彰化县| 普格县| 南昌县| 延庆县| 沿河| 保定市| SHOW| 蓬溪县| 龙南县| 碌曲县| 宾川县| 金川县| 深州市| 类乌齐县| 景泰县| 双江| 罗江县| 鄂托克前旗| 浙江省| 盐津县| 项城市| 鹤岗市| 石河子市| 广宗县|