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
