我需要测试数组中的每个项是否彼此相同.例如:
var list = ["l","r","b"]
应评估为false,因为每个项目不相同.另一方面这个:
var list = ["b", "b", "b"]
应该评估为真,因为它们都是相同的.实现这一目标的最有效(速度/资源)方式是什么?
可能重复:
对象数组中的indexOf方法?
我有一个遵循这种格式的javascript数组:
var arrayName = [
{id: "a", gender: "man", item: "stuff"},
{id: "b", gender: "woman", item: "stuff"},
{id: "c", gender: "man", item: "stuff"},
{id: "d", gender: "man", item: "stuff"}
];
Run Code Online (Sandbox Code Playgroud)
有没有办法可以使用array.indexOf在数组中查找索引,例如我知道"id"变量.
比如我试过;
var position = arrayName.indexOf("b");
arrayName[position].gender = "man"
Run Code Online (Sandbox Code Playgroud)
我正在使用的那一刻;
for(var i=0; i<arrayName.length; i++) {
if(arrayName[i].id == "b"){
arrayName[i].gender = "man";
}
}
Run Code Online (Sandbox Code Playgroud)
第二种技术有效,但我使用的实际数组在每个条目中有150个条目和10个项目,因此当我知道要编辑的条目的"id"时,循环遍历它似乎非常浪费.如果我可以使它工作,indexOf将是一个更清洁的方法.