[英]Find object by property in an array of JavaScript objects inside another array
I have an array called mainarray
which has three objects inside it. 我有一个名为
mainarray
的数组,其中有三个对象。 Inside each object there's another array called innerarray
which has its own three objects. 在每个对象内部有另一个名为
innerarray
的数组,该数组具有自己的三个对象。
How do I get the first property of every second object inside each of the innerarray
? 如何获取每个
innerarray
内部每个第二个对象的第一个属性? Is this possible? 这可能吗?
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,
}]
}]
This question is totally different than From an array of objects, extract value of a property as array . 这个问题与从对象数组中提取属性值作为array完全不同。 As here i am trying to get property of an object inside an array which is inside another array.
在这里,我试图获取另一个数组内部的数组中对象的属性。
mainarray.map(item => item.innerarray[1].propertyiwant);
or, if you use underscore and es5 only 或者,如果仅使用下划线和es5
_.map(mainarray, function(item){
return item.innerarray[1].propertyiwant
});
You can try the following code. 您可以尝试以下代码。 It will bring you every second (in the sense of 2nd, 4th, 6th... etc) object in each subarray if they exist.
如果每个子数组存在,它将每秒带给您第二个,第二个,第四个,第六个……等的对象。 If you are interested in only the second object then it's a matter of replacing the whole
e.innerarray.reduce(..
. part with e.innerarray[2]
. This will get you the whole desired 2nd object and then you can access any property of it that you like. 如果您只对第二个对象感兴趣,那么只需将整个
e.innerarray.reduce(..
部分替换为e.innerarray[2]
。这将为您提供整个所需的第二个对象,然后您可以访问任何第二个对象您喜欢的属性。
var 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", }] }], mapped = mainarray.map(e => e.innerarray.reduce((p,c,i) => (i%2 && p.push(c),p),[])); console.log(mapped);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.