找出JavaScript数组是否包含对象的最简洁有效的方法是什么?
这是我知道的唯一方法:
function contains(a, obj) {
for (var i = 0; i < a.length; i++) {
if (a[i] === obj) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好,更简洁的方法来实现这一目标?
这与Stack Overflow问题密切相关问题在JavaScript数组中查找项目的最佳方法是什么?它使用的方法寻找数组中的对象indexOf.
javascript arrays algorithm time-complexity javascript-objects
有没有从JavaScript数组中删除项的方法?
给定一个数组:
var ary = ['three', 'seven', 'eleven'];
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
removeItem('seven', ary);
Run Code Online (Sandbox Code Playgroud)
我已经调查了splice()但只能通过位置编号删除,而我需要通过其值删除项目.
问题是-操作员不工作(在第8行).请参阅下面的代码:
array = [0,0,0,0,3,0,0,0,0],
n = 0;
for(var i = 0; i < array.length; i++){
if(n < 9){ //the "n" variable there's only for don't crash the browser with a infinite loop
if(array[i] == 3){
array[i] = 0;
array[i - 1] = 3; //I believe that here is the problem
}
}
n++;
}
console.log(array);
Run Code Online (Sandbox Code Playgroud)
所以... 我想将"3"值移动到数组的开头.但它只有在我使用+运算符(第8行)时才有效.因此,如果我使用+一个,"3"值将到达数组的末尾.
任何人都知道为什么-操作员在这种情况下不工作和+工作?