使用Js中的循环查找具有特定值的数据索引

时间:2014-10-25 09:18:40

标签: javascript angularjs while-loop indexing find

我有一个包含多个选项的数据,其中只有一个选项的值correcttrue。我需要找到这个特定数据的索引。我用下面的代码实现了它。但是我想知道这个方法是否有任何性能影响,以及当我使用Angular Js时是否有更好的方法。

 var data = [      

                  {"option": "8",      "correct": false},
                  {"option": "14",     "correct": false},
                  {"option": "10",      "correct": true},
                  {"option": "23",     "correct": false} 

 ];

var i = data.length;
while(i--) {
    if (data[i].correct == true){
        alert("Option:"+ data[i].option + " Index:"+ i);
    break;    

    }       
} 

1 个答案:

答案 0 :(得分:1)

没有其他方法可以在数组中找到一个值,除非你完全遍历它,这将是O(n)。

但是,如果您的数组是根据您用于搜索的字段进行排序,则可以改进搜索。在这种情况下,您可以使用二进制搜索,即O(log n)。

如果数组太大,搜索会产生性能影响。它也与角度无关。