找出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 objectArray = [
{ "Name" : "A", "Id" : "1" },
{ "Name" : "B", "Id" : "2" },
{ "Name" : "C", "Id" : "3" },
{ "Name" : "D", "Id" : "4" }
];
Run Code Online (Sandbox Code Playgroud)
Now i am trying to find out whether an object with a given property Name value exist in the array or not through in built function like inArray, indexOf etc. Means if i have only a string C than is this …
我有一个带有抛出错误的函数的对象,
myObj = {
ini:function(){
this.f();
},
f:function(){
throw new Error();
}
};
Run Code Online (Sandbox Code Playgroud)
但我只想捕捉创建对象的异常
try{
var o = new myObj();
}catch(err){
alert("error!");
}
Run Code Online (Sandbox Code Playgroud)
看起来我必须尝试/ catch块到处= /捕获不同功能范围内的错误事件
try{
myObj = {
ini:function(){
try{
this.f();
}catch(err){
alert("f threw an err");
}
},
f:function(){
throw new Error();
}
};
}catch(err){
alert("error happend while crating Obj");
}
Run Code Online (Sandbox Code Playgroud)
但我只想从一个地方捕获= /我该怎么做?
我想知道函数中放入的变量的类型.所以,我用过typeof这样的:
randomFunctionName: function(obj){
switch(typeof obj){
case "object":
//Something
case "text":
//Something else
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是,我不知道obj是数组还是对象,因为
typeof [] === "object" //true
typeof {} === "object" //true
Run Code Online (Sandbox Code Playgroud)
那么,我怎么能把它们分开呢?它们之间有什么区别吗?