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

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

映射兩個對象數組,匹配屬性并將特定信息存儲在新數組中

映射兩個對象數組,匹配屬性并將特定信息存儲在新數組中

catspeake 2021-11-18 09:45:44
javascript 新手,正在努力學習!我試圖通過兩個對象數組進行映射,如果某個屬性匹配,則將特定信息拉入數組中。let result;let arrNames = [{  name: "A"}, {  name: "B"}, {  name: "C"}]let arrInfo = [{  name: "A",  info: "AAA"}, {  name: "B",  info: "BBB"}, {  name: "C",  info: "ccc"}]如果 arrNames.name == arrInfo.name,我希望結果等于 arrInfo.info。我試過的:arrNames.map(x => {if(arrNames.name == arrInfo.name){   result=arrInfo.info}^ 這顯然不起作用——但我想知道 Assign 或 Filter 是否合適。在此先感謝您的幫助(抱歉這可能是個騙局)!
查看完整描述

3 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

您可以在map() 中使用find( )來查找元素。即使它們在兩個數組中的索引不同,這也會找到該元素。


然后使用filter()過濾undefined如果沒有匹配將出現的任何值。


var arrNames = [

   {name: "A"},

   {name: "B"},

   {name: "C"}

];


var arrInfo = [

   {name: "A", info: "AAA"},

   {name: "B", info: "BBB"},

   {name: "C", info: "ccc"}

];


let result = arrNames.map(x => {

  item = arrInfo.find(item => item.name === x.name);

  if (item) { 

    return item.info;

  }      

}).filter(item => item !== undefined); // Can also use filter(item => item);


console.log(result);


查看完整回答
反對 回復 2021-11-18
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

let result = [];


arrNames = [

   {name: "A"},

   {name: "B"},

   {name: "C"},

]


arrInfo = [

   {name: "A", info: "AAA"},

   {name: "B", info: "BBB"},

   {name: "C", info: "ccc"},

]


result = arrNames.map(function(_, index){

  if(arrNames[index].name === arrInfo[index].name) {

    return arrInfo[index].info

  }

})


查看完整回答
反對 回復 2021-11-18
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

您可以使用帶有條件的地圖


el.name === arrNames[index].name && el.info

方法:


if (el.name === arrNames[index].name) return el.info

let arrNames = [{

  name: "A"

}, {

  name: "B"

}, {

  name: "C"

}]


let arrInfo = [{

  name: "A",

  info: "AAA"

}, {

  name: "B",

  info: "BBB"

}, {

  name: "C",

  info: "ccc"

}]



const res = arrInfo.map((el, index) => el.name === arrNames[index].name && el.info)


console.log(res)


查看完整回答
反對 回復 2021-11-18
  • 3 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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