第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

json數(shù)組 根據(jù)動態(tài)key獲得value 有什么好的方法?

json數(shù)組 根據(jù)動態(tài)key獲得value 有什么好的方法?

海綿寶寶撒 2019-04-08 09:21:47
json數(shù)組如下:javascriptvarjsonArr=[{"id":"1","name":"A1"},{"id":"2","name":"A2"},{"id":"3","name":"A3"},{"id":"4","name":"A4"},{"id":"5","name":"A5"}]現(xiàn)在有個動態(tài)key1或者2如何根據(jù)我的key獲得對應(yīng)的value值除了簡單的循環(huán)forin外有沒有更好的方法?因為我個人認為如果json數(shù)組數(shù)據(jù)量龐大的情況下很耗性能。希望有大牛來指點指點。
查看完整描述

2 回答

?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

如果你只是偶爾查一次,那就遍歷吧,用[].every還是很容易寫的,或者用for...in也不難。
但是如果需要經(jīng)常查找,那最好建立一個查找表,比如
javascriptfunctioncreateLookMap(field){
varmap={}
for(vari=0;ivaritem=jsonArr[i]
varkey=item[field]
map[field]=item
}
returnmap
}
varidMap=createLookMap("id")
在查找的時候只需要直接從idMap中取就行了
javascriptvarid=needId()
varobj=idMap[id]//thefoundobjectorundefined
如果還需要按name來查找,可以再建一個查找表
javascriptvarnameMap=creaetLookMap("name")
如果name不是唯一的,那創(chuàng)建查找表的時候就要耍點手段,保存一個數(shù)組而不是一個對象
javascriptfunctioncreateLookMap(field){
varmap={}
for(vari=0;ivaritem=jsonArr[i]
varkey=item[field]
varlist=map[key]
fi(!list){
map[key]=list=[]
}
list.push(item)
}
returnmap
}
注:程序未實際運行驗證,可能會有一些小問題
                            
查看完整回答
反對 回復(fù) 2019-04-08
?
www說

TA貢獻1775條經(jīng)驗 獲得超8個贊

如果真的量很大,并且反復(fù)用的話,你可以把數(shù)據(jù)結(jié)構(gòu)改成:
varjsonDic=[
"1":{"id":"1","name":"A1"},
"2":{"id":"2","name":"A2"},
"3":{"id":"3","name":"A3"},
"4":{"id":"4","name":"A4"},
"5":{"id":"5","name":"A5"}
]
                            
查看完整回答
反對 回復(fù) 2019-04-08
  • 2 回答
  • 0 關(guān)注
  • 564 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號