在另一个数组中的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:-)是的:)我刚才介绍了使用箭头函数的方法,例如:)