javascript - indexOf 但对于对象呢?

标签 javascript arrays object indexof

我想查看一个对象并将其每个现有属性分配给一个变量。

有 4 个可能的属性。有些对象有全部 4 个。有些可能只有两个。

如何检查特定属性是否存在?对于数组,但对于对象,是否有等效的indexOf()?

最佳答案

使用in关键字:

对象中的“key”

返回truefalse,具体取决于对象或其原​​型链中的任何内容是否具有该属性。

您还可以使用object.hasOwnProperty("key") ,只有当对象将 key 作为其自身属性而不是其原型(prototype)时,该值才会为 true。示例:

var object = {};
"toString" in object; // true
object.hasOwnProperty("toString"); // false

请注意(根据 @dandavis 的评论),如果 object 有一个名为 hasOwnProperty 的自定义属性,则会受到阻碍;要解决此问题,请使用 hasOwnProperty.call(object, "key")。示例:

var a = {hasOwnProperty: Boolean};
a.hasOwnProperty('name'); // true
hasOwnProperty.call(a, 'name'); // false

关于javascript - indexOf 但对于对象呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39008719/

相关文章:

javascript - 获取要复制的子元素的总高度

javascript - Angular app.component.html 未渲染新组件

javascript - FieldValue.arrayRemove() 不适用于字符串数组

c - 定义 2 个字节以便于在 C 中使用数组初始化/比较的最佳方法?

java - 比较两个 boolean 数组的最有效方法是什么?

javascript - 使用 Fetch 和 FormData API 上传多个文件

javascript - 如何将数组转换为 JSON 格式

javascript - 从对象内部的对象中删除键

javascript - 将对象的值分组到新数组中 - JavaScript

java - 编写一个类方法,将数组添加到已存在数组的空元素中