hasOwnProperty() 方法
hasOwnProperty() 方法返回一个布尔值,该值指示对象是否具有作为其自身属性的指定属性。
如果对象包含“key”属性,则创建一个函数。
如果在循环中找不到任何键,这将返回 true,这意味着该对象为空。
如果找到任何键,则循环中断并返回 false。
Object.keys() 方法
Object.keys() 方法返回指定对象自己的可枚举属性名称的数组。
属性顺序与手动循环对象属性的情况相同。
在本教程中,介绍了两个最常用的方法,它们将列出 JavaScript 对象的属性。
我们可以使用现代浏览器支持的内置 Object.keys 方法:
let keys = Object.keys(myObj);
例子:
let object = { name: 'Jack', age: 25 }; let keys = Object.keys(object) console.log(keys);
要检索属性名称列表,我们可以执行以下操作:
let getKeys = function (obj) { let keysArr = []; for (var key in obj) { keysArr.push(key); } return keysArr; }
例子:
let getKeys = function (obj) { let keysArr = []; for (var key in obj) { keysArr.push(key); } console.log(keysArr); } let obj = { name: 'Jack', age: 25 } getKeys(obj);
或者,我们可以将 var getKeys 替换为 Object.prototype.keys 以允许我们在任何对象上调用 .keys()。
但是,扩展原型有一些副作用,不推荐。
我们还可以使用 for...in 构造来迭代对象的属性名称。
但是,这样做时,我们将遍历对象原型链中的所有属性名称。
要仅迭代对象的属性,我们可以使用 hasOwnProperty() 方法,如下所示:
for (var key in obj) { if (obj.hasOwnProperty(key)) { /* code here */ } }
例子:
let user = { name: 'Jack', age: 25 } if (user.hasOwnProperty("name")) { console.log(user.name); }
日期:2020-06-02 22:16:22 来源:oir作者:oir