我有一个包含多个选项的数据,其中只有一个选项的值correct
为true
。我需要找到这个特定数据的索引。我用下面的代码实现了它。但是我想知道这个方法是否有任何性能影响,以及当我使用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;
}
}
答案 0 :(得分:1)
没有其他方法可以在数组中找到一个值,除非你完全遍历它,这将是O(n)。
但是,如果您的数组是根据您用于搜索的字段进行排序,则可以改进搜索。在这种情况下,您可以使用二进制搜索,即O(log n)。
如果数组太大,搜索会产生性能影响。它也与角度无关。