谁能告诉我检查对象数组中的对象是否具有 11
的 type
的最佳方法?
下面是我所拥有的,但它会针对数组中的每个对象发出警报,我可以检查整个数组并让它在最后只发出一次警报吗?
我见过像 grep 这样的方法,但我一直在尝试,但无法让它发挥作用。我正在使用 jQuery。
var x;
for (x = 0; x < objects.length; x++) {
if (objects[x].type == 11) {
alert("exists");
} else {
alert("doesnt exist");
}
}
最佳答案
最好的方法是使用 Array.some :
var exists = objects.some(function(el) { return el.type === 11 });
在链接中还有一个不支持它的浏览器的垫片。
否则你可以迭代:
var exists = false;
for (var i = 0, el; !exists && (el = objects[i++]);)
exists = el.type === 11;
一旦设置了 exists
变量,您就可以:
if (exists) {
// do something
}
在这两种情况下都在循环之外。
关于javascript - 使用jQuery测试数组中是否存在具有属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14886398/