代码之家  ›  专栏  ›  技术社区  ›  Artyom Amiryan

从数组将对象数组转换为对象的对象特性

  •  3
  • Artyom Amiryan  · 技术社区  · 7 年前

    我需要将一个对象数组转换为一个对象数组中的对象属性。

    array of objects

    const array = [
     {
      book:5,
      car: 6,
      pc: 7
     },
     {
      headphone: 9,
      keyboard: 10
     },
    ];
    

    我需要把它转换成

    const obj = {
     book:5,
     car: 6,
     pc: 7,
     headphone: 9,
     keyboard: 10
    };
    

    4 回复  |  直到 7 年前
        1
  •  14
  •   Nina Scholz    7 年前

    可以将数组作为参数展开( spread syntax ... )为了 Object.assign ,返回单个对象。

    const
        array = [{ book: 5, car: 6, pc: 7 }, { headphone: 9, keyboard: 10 }],
        object = Object.assign({}, ...array);
        
    console.log(object);
        2
  •  3
  •   Mohammad Usman    7 年前

    .reduce() Object.assign() 方法:

    const array = [
      {book:5, car: 6, pc: 7},
      {headphone: 9, keyboard: 10},
    ];
    
    const result = array.reduce((r, c) => Object.assign(r, c), {});
    
    console.log(result);
        3
  •  0
  •   Vencovsky    7 年前

    for(let i = 0; i < array.length; i++){
        for (let key in array[i]) {
            if (array[i].hasOwnProperty(key)) {
                obj[key] = array[i][key];
            }
        }
    }
    
        4
  •  -1
  •   Umair Abid    7 年前

    怎么样

    let obj = {}
    
    for(let object of array) {
      Object.assign(obj, object)
    }
    
    console.log(obj)