clave de objeto transversal js, valor

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)
  })

inserte la descripción de la imagen aquí
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)
})

inserte la descripción de la imagen aquí
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])
  }

inserte la descripción de la imagen aquí
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)

inserte la descripción de la imagen aquí
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)

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_41842461/article/details/129257558
Recomendado
Clasificación