亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

有沒有童鞋遇到過同樣的問題:社區求助 js 數組組合成需要的新數組 跪求!

有沒有童鞋遇到過同樣的問題:社區求助 js 數組組合成需要的新數組 跪求!

慕絲7291255 2019-06-09 11:12:19
vararr=[{"areaName":"北歐","countryName":"阿布哈茲","packageName":"測試1","packagePrice":"1.0","mark":0},{"areaName":"西歐","countryName":"德國","packageName":"測試3","packagePrice":"14.0","mark":1},{"areaName":"北歐","countryName":"丹麥","packageName":"測試2","packagePrice":"14.0","mark":0}]需要的新數組格式為vararr2=[{"areaName":"北歐","mark":0,"list":[{"countryName":"阿布哈茲","packageName":"測試1","packagePrice":"1.0",},{"countryName":"丹麥","packageName":"測試2","packagePrice":"14.0",}]},{"areaName":"西歐","mark":1,"list":[{"countryName":"德國","packageName":"測試3","packagePrice":"14.0",}]}]
查看完整描述

2 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

functiontransform(arr){
constobj={}
arr.forEach(item=>{
const{mark,areaName,...rest}=item
if(!obj[item.mark]){
obj[mark]={
mark,
areaName,
list:[rest],
}
}else{
obj[mark].list.push(rest)
}
})
returnObject.values(obj)
}
                            
查看完整回答
反對 回復 2019-06-09
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

寫了一個方法,可能不是最簡單的實現方法,僅供參考:
letarr=[];//這里是你上面的數據
lettemp_obj={};
arr.map(item=>{
letbuff_property="mark"+item.mark;
if(temp_obj[buff_property]){
temp_obj[buff_property].list.push({
"countryName":item.countryName,
"packageName":item.packageName,
"packagePrice":item.packagePrice
})
}else{
temp_obj[buff_property]={
"areaName":item.areaName,
"mark":item.mark,
"list":[
{
"countryName":item.countryName,
"packageName":item.packageName,
"packagePrice":item.packagePrice
}
]
}
}
returnitem;
})
letarr2=Object.values(temp_obj);
temp_obj=null;//使用完成,釋放內存
console.log(arr2);
                            
查看完整回答
反對 回復 2019-06-09
  • 2 回答
  • 0 關注
  • 380 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號