Javascript 映射两个对象数组,匹配属性并在新数组中存储特定信息
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
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
}
})