Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 映射两个对象数组,匹配属性并在新数组中存储特定信息_Javascript_Arrays_Object_Prototypejs_Array.prototype.map - Fatal编程技术网

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

Javascript 映射两个对象数组,匹配属性并在新数组中存储特定信息,javascript,arrays,object,prototypejs,array.prototype.map,Javascript,Arrays,Object,Prototypejs,Array.prototype.map,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" }] 如果ar

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
}
^这显然不起作用——但我想知道赋值或筛选是否合适


提前感谢您的帮助(很抱歉,这可能是个骗局)

您可以使用带有内部条件的映射

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

if (el.name === arrNames[index].name) return el.info
让arrNames=[{
姓名:“A”
}, {
姓名:“B”
}, {
名称:“C”
}]
设arrInfo=[{
名称:“A”,
信息:“AAA”
}, {
名称:“B”,
信息:“BBB”
}, {
名称:“C”,
信息:“ccc”
}]
const res=arrInfo.map((el,index)=>el.name==arrNames[index].name&&el.info)
console.log(res)
您可以在内部使用来查找元素。即使元素在两个数组中不在同一索引中,也会找到该元素

然后,使用筛选任何未定义的值,如果不匹配,这些值将出现

var arrNames=[
{name:“A”},
{name:“B”},
{name:“C”}
];
var arrInfo=[
{名称:“A”,信息:“AAA”},
{名称:“B”,信息:“BBB”},
{名称:“C”,信息:“ccc”}
];
让结果=arrNames.map(x=>{
item=arrInfo.find(item=>item.name==x.name);
如果(项目){
返回item.info;
}      
}).filter(项=>项!==未定义);//也可以使用过滤器(项目=>item);

控制台日志(结果)当现有答案解决原始问题时,不要修改问题。改为问一个新问题(我看你已经问了)。正在回滚到以前的版本。
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
  }
})