在另一个数组中的JavaScript对象数组中按属性查找对象
我有一个名为在另一个数组中的JavaScript对象数组中按属性查找对象,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我有一个名为mainarray的数组,里面有三个对象。每个对象内部都有另一个名为innerarray的数组,它有自己的三个对象 如何获取每个innerarray中第二个对象的第一个属性?这可能吗 mainarray: [{ innerarray: [{ property1: value1, property2: value2, property3: value3, }, { propertyiwant: value1
mainarray
的数组,里面有三个对象。每个对象内部都有另一个名为innerarray
的数组,它有自己的三个对象
如何获取每个innerarray
中第二个对象的第一个属性?这可能吗
mainarray: [{
innerarray: [{
property1: value1,
property2: value2,
property3: value3,
}, {
propertyiwant: value1,
property2: value2,
property3: value3,
}, {
property1: value1,
property2: value2,
property3: value3,
}]
}, {
innerarray: [{
property1: value1,
property2: value2,
property3: value3,
}, {
propertyiwant: value1,
property2: value2,
property3: value3,
}, {
property1: value1,
property2: value2,
property3: value3,
}]
}, {
innerarray: [{
property1: value1,
property2: value2,
property3: value3,
}, {
propertyiwant: value1,
property2: value2,
property3: value3,
}, {
property1: value1,
property2: value2,
property3: value3,
}]
}]
这个问题和我的完全不同。在这里,我试图获取数组中的一个对象的属性,而这个数组位于另一个数组中
mainarray.map(item => item.innerarray[1].propertyiwant);
或者,如果仅使用下划线和es5
_.map(mainarray, function(item){
return item.innerarray[1].propertyiwant
});
您可以尝试以下代码。它会给你带来每一秒(在第二,第四,第六…等意义上)在每个子数组中的对象,如果它们存在的话。如果您只对第二个对象感兴趣,则需要将整个
e.innerarray.reduce(..
.part替换为e.innerarray[2]
。这将获得所需的整个第二个对象,然后您可以访问它的任何属性
var mainarray=[{
内部阵列:[{
财产1:“价值1”,
物业2:“价值2”,
财产3:“价值3”,
}, {
propertyiwant:“value1”,
物业2:“价值2”,
财产3:“价值3”,
}, {
财产1:“价值1”,
物业2:“价值2”,
财产3:“价值3”,
}]
}, {
内部阵列:[{
财产1:“价值1”,
物业2:“价值2”,
财产3:“价值3”,
}, {
propertyiwant:“value1”,
物业2:“价值2”,
财产3:“价值3”,
}, {
财产1:“价值1”,
物业2:“价值2”,
财产3:“价值3”,
}]
}, {
内部阵列:[{
财产1:“价值1”,
物业2:“价值2”,
财产3:“价值3”,
}, {
propertyiwant:“value1”,
物业2:“价值2”,
财产3:“价值3”,
}, {
财产1:“价值1”,
物业2:“价值2”,
财产3:“价值3”,
}]
}],
mapped=mainarray.map(e=>e.innerray.reduce((p,c,i)=>(i%2&&p.push(c,p),[]);
console.log(mapped);
嘿,谢谢你的时间,我尝试了你说的:mapped=mainarray.map(e=>e.innerray[2].propertyiwant),但它给我带来了一个错误“无法读取未定义的属性”。我还尝试了mainarray.map(e=>e.innerray[2]['propertyiwant']),但仍然无法工作数组从索引0开始,所以你想要innerray[1]
@krimz基本上这正是Foker所建议的。krimz,这和@Foker的答案在我测试它们时都很有效。你应该给出你的预期输出,并展示你迄今为止所做的尝试。@FizzyTea嘿!你说得对,它们在这些示例中效果很好。我在寻找其他东西,我只是不太清楚, Array.prototype.map
在ES5:-)是的:)我刚才介绍了使用箭头函数的方法,例如:)