1

array.indexOf渡すことをsearchElementオブジェクトとして使用することは可能ですか。私の例では、結果は -1 です。

   var myArray = [{id: 1, name: 'milan'}, {id: 2, name: 'rome'}];
   var idx = myArray.indexOf({id: 1, name: 'milan'});

不可能な場合、より高速な代替アプローチは何ですか? たぶんarray.filter、インデックスの結果値として使用して返しますか?

4

4 に答える 4

0

array.filter() メソッドはインデックスを返さず、データをフィルタリングするためのインデックスを提供するだけですが、.filter() の条件を満たす配列のオブジェクト全体を常に返します。

このロジックを使用できます

function getIndex(myArray, element)
{
    for(var i=0; i<array.length; i++) {
        if(element.id == myArray[i].id)
            return i;
    }
    return -1;
}
于 2013-10-24T11:28:18.390 に答える