为了账号安全,请及时绑定邮箱和手机立即绑定

映射两个对象数组,匹配属性并将特定信息存储在新数组中

映射两个对象数组,匹配属性并将特定信息存储在新数组中

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 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信