如何在 JavaScript 中检查数组是否包含对象
答案:使用 JavaScript some()
方法
您可以使用 JavaScript some()
方法来确定 JavaScript 数组是否包含对象。
此方法测试数组中的至少一个元素是否通过了提供的函数实现的测试。 这是一个演示其工作原理的示例:
<script>
// 对象数组
var persons = [{name: "Harry"}, {name: "Alice"}, {name: "Peter"}];
// 通过比较属性值来判断数组是否包含对象
if(persons.some(person => person.name === "Peter")){
alert("Object found inside the array.");
} else{
alert("Object not found.");
}
</script>
请注意,如果尝试使用 persons.indexOf({name: "Harry"})
之类的 indexOf()
方法在数组中查找对象,它将不起作用(总是返回 -1
)。 因为,即使它们看起来相同(即具有相同的属性和值),两个不同的对象也不相等。 同样,两个不同的数组也不相等,即使它们以相同的顺序具有相同的值。
some()
方法在所有主流浏览器中均受支持,例如 Chrome、Firefox、IE(9 及以上)等。有关箭头函数符号的更多信息,请参阅 JavaScript ES6 功能 上的教程。
FAQ 相关问题解答
以下是与此主题相关的更多常见问题解答:
Advertisements