不使用循环修改数组内的对象

时间:2016-02-03 15:13:08

标签: javascript

javascript中是否有任何可以修改数组值的方法。我是使用for loop完成的,还有另一种方法调用forEach。我想通过只使用一行来完成它。就像我已经看到使用Array.prototype.slice将onject转换为数组的代码。那么我们可以通过使用类似的功能来完成要求。我谷歌但没有找到任何相关的帖子。

this.gome = (function(data){
        for(var i=0;i<data.length;i++){
          data[i].id = i
        }
        return data })(data.gome);

this.gome = Array.prototype.slice.call(data.gome,//code) // something like that.

2 个答案:

答案 0 :(得分:1)

map是你的朋友:

this.gome = data.gome.map((x, i) => ({...x, id: i}));

或没有ES2016:

this.gome = data.gome.map((x, i) => Object.assign({}, x, {id: i }));

答案 1 :(得分:0)

这将使用一行添加值,但它仍然是for循环

for(var i = 0, l = data.length; i<l; i++){ data[i].id = i };