【问题标题】:JS - Insert an object inside an object having a same dataJS - 在具有相同数据的对象内插入一个对象
【发布时间】:2020-05-05 04:04:06
【问题描述】:

我正在整理包含相同数据的一系列数据

var arr = [{id: 1, parent: "a"}, {id: 2, parent: "b"}];

var cArr = [
  {parentID: 1, a1: "1"}, 
  {parentID: 1, a1: "2"},
  {parentID: 2, a1: "3"},
  {parentID: 2, a1: "4"}
];

我想加入他们,看起来像这样

var array = [
    { id: 1, parent: "1", data: [{ a1: "1"}, { a1: "2"}] }, 
    { id: 2, parent: "2", data: [{ a1: "3"}, { a1: "4"}] }
];

如何在对象array 内添加变量parentdata

如何访问id: 1, parent: "1", data: [{ a1: "1"}, { a1: "2"}]?是不是像array[0]

我是 JS 新手,如果我有错误,我很抱歉。我是using console.log() 来检查一下

【问题讨论】:

    标签: javascript arrays angularjs object


    【解决方案1】:

    你可以这样实现:

    var array = [{ parent: "1", data: [{ a1: "1"}, { a1: "2"}] }, 
                   {parent: "2", data: [{ a1: "3"}, { a1: "4"}] 
    }];
    
    console.log(array[0].parent); // 1
    console.log(array[0].data) // [{ a1: "1"}, { a1: "2"}]

    要添加一个项目,只需使用 .push 方法

    array.push({ parent: "3", data: [{ a1: "5"}, { a1: "6"}] });
    

    【讨论】:

      【解决方案2】:

      使用Array.map() 迭代arr,并使用对象扩展创建一个具有原始对象内容的新对象。要从 cArr 获取相应的项目,请使用 Array.slice() 和当前项目的索引:

      const arr = [{parent: "1"}, {parent: "2"}];
      const cArr = [{a1: "1"}, {a1: "2"}, {a1: "3"}, {a1: "4"}];
      
      const result = arr.map((o, i) => ({
        ...o, // copy the original object's content
        data: cArr.slice(i * 2, i * 2 + 2) // slice the sub-array from cArr
      }));
      
      console.log(result);

      【讨论】:

        猜你喜欢
        • 2019-08-05
        • 2016-05-04
        • 1970-01-01
        • 2011-11-25
        • 1970-01-01
        • 1970-01-01
        • 2019-10-02
        • 1970-01-01
        • 2017-02-27
        相关资源
        最近更新 更多