在ES6 javascript中更新现有对象数组

时间:2017-04-21 21:38:37

标签: javascript arrays json object ecmascript-6

我是ES6 JavaScript的新手。我正在寻找一个场景,我可以更新来自Web服务的对象数组并将数据格式传递给表。

我正在使用ReactJS' rc-table'。

https://www.npmjs.com/package/rc-table

要以rc-table格式显示我们的数据,我们需要一个属性键:" somevalue"在我们的数据来自后端。

我的数据采用以下格式:

{
 {
   Name:'Robert',
   City: 'Barcelona'
 },
 {
   Name: 'Marguaritte',
  City: 'Baltimore'

 }
}

现在它将以rc-table格式显示,仅当对象具有唯一的键属性时才会显示。

例如:

 {
 {
  Name:'Robert',
  City: 'Barcelona',
   Key:1
 },
 {
  Name: 'Marguaritte',
  City: 'Baltimore',
  Key:2

  }
 }

我正在寻找用'键更新我的对象:1'和'关键:2' 附上是我的代码。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:6)

你的实际数组格式不正确,你应该用{}替换包[],这样它就是一个有效的数组。

无论如何你应该使用Array.prototype.map(),它将使用回调函数返回一个自定义数组,该函数将key属性添加到每个迭代项。

这是你应该编写代码的方式:

var data = arr.map(function(item, index) {
  item.key = index + 1;
  return item;
});

ES6解决方案:

ES6 arrow functions的评论中使用 Chester Millisock

var data = arr.map((item, index) => {
   item.key = index + 1;
   return item;
}); 

<强>演示:

var arr = [{
    Name: 'Robert',
    City: 'Barcelona'
  },
  {
    Name: 'Marguaritte',
    City: 'Baltimore'

  }
];

var data = arr.map((item, index) => {
   item.key = index + 1;
   return item;
}); 

console.log(data);

答案 1 :(得分:1)

我想你想做这样的事情。我假设您的数据是一个对象数组,而不是没有键的对象,正如您所建议的那样。

const data = data.map((el, index) => {
    el.Key = index;
    return el;
});