繁体   English   中英

如何获取在JavaScript中具有多个子元素的数组元素的索引

[英]How to get index of an array element which has more than one sub elements in javascript

我正在使用javascript工作,我想在数组中找到元素的索引。

var task = [{taskno:'1',todo:'cooking'},{taskno:'2',todo:'play'}];

现在我想找到做饭时要完成的任务索引,我不知道它的任务不..有内置函数吗?

我已经尝试过此代码,但无法正常工作:

  var index = task.indexOf(todo:'cooking');

现在我正在使用for循环,还有其他方法吗?

提前致谢 :)

indexOf将为您提供数组中对象的索引,但是您必须已经有对该对象的引用。

例如

var o1 = { val: 'o1' },
    o2 = { val: 'o2' };

[o2, o1].indexOf(o1); //1

如果没有对该对象的引用,则必须创建自己的搜索算法。

var tasks = [{taskno:'1',todo:'cooking'}, {taskno:'2',todo:'play'}];

var index = indexOfFirstMatch(tasks, function (task) {
    return task.todo === 'cooking';
});

console.log(index); //0

function indexOfFirstMatch(arr, matcher) {
    var i = 0, len = arr.length;

    for (; i < len; i++) {
        if (matcher(arr[i])) return i;
    }

    return -1;
}

如果您需要实际的对象,则仅是索引。 您可以使用下划线库,它是findWhere函数:

var task_wanted = _findWhere(task, {todo: "Cooking"});

如果您确实需要索引,请使用task_wanted使用indexOf()搜索数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM