Object.entries
Object.entries() 返回给定对象的一组可枚举的字符串键控属性 [key, value] 对,其顺序与 for..of 循环提供的顺序相同,但有一个区别是 for...of 枚举原型链。
使用 Object.entries,我们可以将数组剪切为键和属性:
for (let [key, value] of Object.entries(p)) {
console.log(`${key}: ${value}`);
}
例子:
const personSalary = {
engineer: 1500,
programmer: 2500,
lawyer: 2000,
}
for (let [key, value] of Object.entries(personSalary)) {
console.log(`${key}: ${value}`);
}
Object.keys
下面是使用 Object.keys 遍历数组的示例:
const personSalary = {
engineer: 1500,
programmer: 2500,
lawyer: 2000,
}
const keys = Object.keys(personSalary)
console.log(keys) //[engineer, programmer, lawyer]
这里的重点是使用 for...of 而不是 for...in。
否则,它将在命名属性上返回 undefined,并且 Object.keys() 确保仅使用对象的属性而不使用整个原型链属性。
for...in 和 for...of 循环
for...in 循环在对象的属性上迭代指定的变量。
它迭代对象的“可枚举”属性并应用于具有这些属性的所有对象。
可枚举属性是具有真正 Enumerable 值的对象的属性。
通过调用property.enumerable,可以查看一个属性是否是可枚举的。
它会返回真或者假。
for...of 语句用于创建一个循环,该循环允许迭代数组或者其他可迭代对象,例如数组、字符串、映射和集合等。
非常简单地。
此方法用于迭代具有 [Symbol.iterator] 属性的对象的“可迭代集合”。
有时,可能需要遍历 JavaScript 中的对象。
它主要是通过 for..in 循环完成的。
但是,循环遍历对象的所有键值对时,我们也在循环遍历它们。
for..in 循环遍历原型链中的属性。
要解决这个问题,我们应该检查该属性是否属于该对象。
它是通过 hasOwnProperty 完成的。
for (let prop in object) {
if (object.hasOwnProperty(prop)) {
//Do thing here
}
}
还有另一种方法,首先需要将对象转换为数组并循环遍历数组。
因此,还有其他方法循环遍历数组。
日期:2020-06-02 22:16:22 来源:oir作者:oir
