找出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
查找对象是否在数组中的最佳方法是什么?
这是我所知道的最佳方式:
function include(arr, obj) {
for(var i=0; i<arr.length; i++) {
if (arr[i] == obj) return true;
}
}
include([1,2,3,4], 3); // true
include([1,2,3,4], 6); // undefined
Run Code Online (Sandbox Code Playgroud) 在SQL Server中,我可以说:
WHERE X IN(1,2)
Run Code Online (Sandbox Code Playgroud)
您将如何在JavaScript中重写以下内容:
if (X==1 || X==2) {}
Run Code Online (Sandbox Code Playgroud) 我只是想练习Javascript,所以我尝试这个简单的代码.在我的预期,输出应该是整个列表.
当我使用这段代码时,我只能输出[5,9,17,14,4,19,11,8,13,10,18,15,16,20]
我不知道发生了什么,[1,0,2,3,6,7,12 ...]
[5, 9, 17, 14, 4, 19, 11, 8, 13, 10, 18, 15, 16, 20]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 jQuery 创建以下我想要输出的示例数组:
[["foo0","foo1"],["foo2","foo3","foo4"],["foo5"]]
Run Code Online (Sandbox Code Playgroud)
我尝试使用的代码:
[["foo0","foo1"],["foo2","foo3","foo4"],["foo5"]]
Run Code Online (Sandbox Code Playgroud)
var counter = 0;
var arr = [];
$('.unknown-number-of-elements').each(function(){
var keyNumber = $(this).val();
var valToPush = "foo"+counter;
if(keyNumber in arr){
arr[keyNumber].push(["'"+ valToPush +"'"]);
}else{
arr[keyNumber] = valToPush;
}
counter++;
});
console.log(arr);Run Code Online (Sandbox Code Playgroud)
上面的代码给出了以下错误:
未捕获的类型错误:arr[keyNumber].push 不是函数
基本上,如果数组键已经存在,我想创建一个子数组并向该子数组添加值。