如果我有一个对象数组:
myArray[person{}, person{}, person{}]
每个人都可以包含一个 Children 对象数组,如下所示:
person{
name: 'XXX',
age: 'XXX',
children: [{
name: 'XXX',
age: 'XXX'
},{
name: 'XXX',
age: 'XXX'
},{
name: 'XXX',
age: 'XXX'
}]
}
如何获取 myArray 中每个 Person 的索引以及 Children 数组中对象的索引?
我使用 indexOf() 获取 myArray 中 Person 对象的索引,该索引有效:
function getObjectIndex(myObject) {
var myArray = _.flatten(_.values(objects));
var ret = myArray.indexOf(myObject);
return ret; //RETURNS 0, 1, 2 etc...
}
我不确定如何扩展 getObjectIndex 的功能来获取每个 Person 中 Children 对象的索引
function getObjectIndex(myObject) {
var myArray = _.flatten(_.values(objects));
var ret = myArray.indexOf(myObject);
if (myObject.children.length > 0){
//UNSURE WHAT LOGIC TO APPLY HERE
ret += ;
}
return ret;
}
如果存在任何子对象,我理想情况下希望 getObjectIndex 返回:
Person index in myArray _ Children index in Person
因此,如果一个 Person 中有三个 Children 对象:
0_0
0_1
0_2
任何帮助或建议将不胜感激。
最佳答案
如果将数组传递给 map那么迭代器函数的第二个参数是对象的索引。这可以用来得到你想要的结果:
var indexArrays = _.map(myArray, function(person, personIndex){
return _.map(person.children, function(child, childIndex){
return personIndex + '_' + childIndex;
});
});
var indices = _.flatten(indexArrays);
关于javascript - 如何获取此数组/JS中对象的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26213502/