簡體   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