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

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

javascript 數(shù)組處理的一些疑問

javascript 數(shù)組處理的一些疑問

元芳怎么了 2019-06-18 09:27:41
假設有一個數(shù)組是這樣[{eid:cat,name:aa},{eid:cat,name:bb},{eid:dog,name:cc},{eid:cat,name:dd},{eid:pig,name:ee},{eid:cat,name:ff},{eid:dog,name:gg}]我想要對數(shù)組做處理,將相同的eid放在一起變成[{eid:cat,name:aa},{eid:cat,name:bb},{eid:cat,name:dd},{eid:cat,name:ff},{eid:dog,name:cc},{eid:dog,name:gg},{eid:pig,name:ee}]這有辦法實現(xiàn)嗎?
查看完整描述

2 回答

?
縹緲止盈

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

vardata=[
{eid:'cat',name:'aa'},
{eid:'cat',name:'bb'},
{eid:'dog',name:'cc'},
{eid:'cat',name:'dd'},
{eid:'pig',name:'ee'},
{eid:'cat',name:'ff'},
{eid:'dog',name:'gg'}
]
functiontrans(data){
letcache={}//cache存儲的鍵是eid,值是這個eid在indices數(shù)組中的下標
letindices=[]//數(shù)組中的每一個值是一個數(shù)組,數(shù)組中的每一個元素是原數(shù)組中相同eid的下標
data.forEach((item,i)=>{
leteid=item.eid
letindex=cache[eid]
if(index!==undefined){
indices[index].push(i)
}else{
cache[eid]=indices.length
indices.push([i])
}
})
/**
*此時,cache:{cat:0,dog:1,pig:2}
*indices:[[0,1,3,5],[2,6],[4]]
*indices中的第1項是eid為cat的數(shù)組下標
*indices中的第2項是eid為dog的數(shù)組下標
*indices中的第3項是eid為pig的數(shù)組下標
*/
letresult=[]
indices.forEach(item=>{
item.forEach(index=>{
result.push(data[index])//依次把index對應的元素data[index]添加進去即可
})
})
returnresult
}
letresult=trans(data)
console.log(result)
你的問題里面有個不明確的地方,比如下面這個例子:
vardata=[
{eid:'dog',name:'aa'},
{eid:'cat',name:'bb'},
{eid:'dog',name:'cc'}
]
你是想輸出1:
[
{eid:'dog',name:'aa'},
{eid:'dog',name:'cc'},
{eid:'cat',name:'bb'}
]
還是想輸出2:
[
{eid:'cat',name:'bb'},
{eid:'dog',name:'aa'},
{eid:'dog',name:'cc'}
]
輸出1是按照出現(xiàn)的先后順序排列的,輸出2是按照字母序排列的,我給的是輸出1的函數(shù),如果想要輸出2的結(jié)果,可以參考樓上。
                            
查看完整回答
反對 回復 2019-06-18
  • 2 回答
  • 0 關注
  • 320 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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