Declarar un objeto:
let obj = {
name: 'Kamen',
age: '23',
hobby: 'eat eat eat'
}
Método 1: convertir a matriz de operación para cada recorrido
iterar sobre las propiedades del objeto
//遍历对象属性
Object.keys(obj).forEach(key => {
console.log(key)
})
Acerca del método Object.keys()
El método Object.keys() devuelve una matriz de propiedades enumerables propias de un objeto dado.Los nombres de propiedades en la matriz se organizan en el mismo orden en que se devolverían al recorrer el objeto normalmente.
ejemplo
// 简单数组
const arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']
// 类数组对象
const obj = {
0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']
// 具有随机键顺序的类数组对象
const anObj = {
100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // console: ['2', '7', '100']
// getFoo 是一个不可枚举的属性
const myObj = Object.create({
}, {
getFoo: {
value() {
return this.foo; }
}
});
myObj.foo = 1;
console.log(Object.keys(myObj)); // console: ['foo']
Iterar sobre los valores de propiedad del objeto
//遍历对象属性值
Object.values(obj).forEach(val => {
console.log(val)
})
Acerca del método Object.values()
El método estático object.values() devuelve una matriz de valores de propiedad enumerables con clave de cadena enumerables del objeto dado.
ejemplo
const obj = {
foo: "bar", baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]
// Array-like object
const arrayLikeObj1 = {
0: "a", 1: "b", 2: "c" };
console.log(Object.values(arrayLikeObj1)); // ['a', 'b', 'c']
// Array-like object with random key ordering
// When using numeric keys, the values are returned in the keys' numerical order
const arrayLikeObj2 = {
100: "a", 2: "b", 7: "c" };
console.log(Object.values(arrayLikeObj2)); // ['b', 'c', 'a']
// getFoo is a non-enumerable property
const myObj = Object.create(
{
},
{
getFoo: {
value() {
return this.foo;
},
},
},
);
myObj.foo = "bar";
console.log(Object.values(myObj)); // ['bar']
Método 2: para/en transversal
for( let key in obj ){
//遍历对象属性
console.log(key)
//遍历对象属性值
console.log(obj[key])
}
Nota: este método heredará todas las propiedades de la cadena prototipo, por ejemplo:
Object.prototype.pet = 'open'
for( let key in obj ){
console.log(key)
console.log(obj[key])
}
console.log(obj)
La situación anterior se puede evitar usando hasOwnProperty:
Object.prototype.pet = 'open'
for( let key in obj ){
if (obj.hasOwnProperty(key) === true){
console.log(key)
console.log(obj[key])
}
}
console.log(obj)