javascript - 如何获取此数组/JS中对象的索引

标签 javascript arrays underscore.js indices

如果我有一个对象数组:

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/

相关文章:

java - Android AutoCompleteTextView 如何忽略多余的空格

javascript - 改变选择随机字符串的机会

backbone.js - 是否有任何模板支持使用backbone.js 进行2 向绑定(bind)?

javascript - Eslint解析错误: `Unexpected token <` caused by underscore template

javascript - 必须创建适应网页 View 和移动 View 的网页

asp.net - 将 JavaScript 对象数组传递给 PageMethod

javascript - jQuery/HTML 选择 : Show more text in selected option when select is closed

javascript - 未捕获的类型错误 : Cannot read property 'html' of undefined

c++ - 为什么当您尝试使用 arr = {values} 为数组赋值时会发生错误?

node.js - nodejs i18n __ 不是 ejs 的功能问题,表达