【问题标题】:javascript: Inserting Arrays into object one by onejavascript:将数组一一插入对象
【发布时间】:2018-03-20 05:54:15
【问题描述】:

我需要将位置、商品等数组插入到一个对象中,在这种情况下是 refdata。我需要将数组插入到对象 一个一个 ..正如我在下面的代码中所做的那样:-

但我没有得到想要的输出。任何帮助将不胜感激。

var refdata = {
    locations: [],
    commodities: []

}

var locations=[
    {
      "symbol": "IND",
      "name": "INDIA"
    }
  ]

 var commodities= [
    {
      "name": "Aluminium",
      "symbol": "AL"
    }
  ]
this.refdata={locations};
this.refdta={commodities};

console.log(this.refdata)

【问题讨论】:

  • 先修复语法错误
  • this.refdata={commodities}; 覆盖this.refdata={locations};
  • 是的,你是对的@Jaromanda X
  • 添加了一个 ES6 答案,因为您标记了您的问题 ecmascript-6

标签: javascript ecmascript-6 ecmascript-2016


【解决方案1】:

你可以只pushrefdatalocations的0个元素

var refdata = {
  locations: [],
  commodities: []

}

var locations = [{
  "symbol": "IND",
  "name": "INDIA"
}]

var commodities = [{
  "name": "Aluminium",
  "symbol": "AL"
}]


refdata.locations.push(locations[0]);
refdata.commodities.push(commodities[0]);

console.log(refdata);

或者直接分配它来覆盖值。

var refdata = {
  locations: [],
  commodities: []

}

var locations = [{
  "symbol": "IND",
  "name": "INDIA"
}]

var commodities = [{
  "name": "Aluminium",
  "symbol": "AL"
}]


refdata.locations = locations;
refdata.commodities = commodities;

console.log(refdata);

【讨论】:

  • 谢谢兄弟。非常感谢!
  • @ShivendraGupta 乐于助人:)
【解决方案2】:

在 ES6 中,您可以在这种情况下使用简写语法:

let locations = [{
  "symbol": "IND",
  "name": "INDIA"
}]

let commodities = [{
  "name": "Aluminium",
  "symbol": "AL"
}]

let refdata = { locations, commodities }

console.log(refdata)
let refdata = { locations, commodities }

的缩写
let refdata = { locations: locations, commodities: commodities }

如果需要一一做,如你的问题所述,可以使用Object.assign()

let refdata = {}

let locations = [{
  "symbol": "IND",
  "name": "INDIA"
}]

refdata = Object.assign(refdata, { locations })

let commodities = [{
  "name": "Aluminium",
  "symbol": "AL"
}]

refdata = Object.assign(refdata, { commodities })

console.log(refdata)

提示:我添加这个答案是因为你标记了你的问题

【讨论】:

    【解决方案3】:

    因为您想将项目一一插入到 refdata 位置数组中。我想您想对每个项目进行一些操作。如果是这样,下面的代码将是合适的。

    var refdata = {
        locations: [],
        commodities: []
    };
    
    var locations=[
        {
          "symbol": "IND",
          "name": "INDIA"
        }
      ];
    
     var commodities= [
        {
          "name": "Aluminium",
          "symbol": "AL"
        }
      ];
      
     for (loc of locations) {
        // Do your object manipulation of loc if required
        console.log(loc);
        refdata.locations.push(loc);
     };
     for (commodity of commodities) {
        // Do your object manipulation of commodity if required
        console.log(commodity);
        refdata.commodities.push(commodity);
     };
     
    console.log(refdata);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多