2014-01-12 49 views
0

我需要做一些数组操作,并希望有人 告诉我,如果_lodash是我可以用来做这件事的东西。我有 是叫result数组,其中包含以下内容:如何使用_lodash来处理数组中的字段,并对它们进行备份并恢复它们?

var result = 
[ 
{"referenceId":20,"callerId":1, "location":2}, 
{"referenceId":21,"callerId":1, "location":3} 
] 

我想创造这个阵列的备份,看起来像这样:

var resultBackup = 
[ 
{"location":2}, 
{"location":3} 
] 

我的用户可以更改数据,该阵列看起来像这样:

var result = 
[ 
{"referenceId":20,"callerId":1, "location":999}, 
{"referenceId":21,"callerId":1, "location":123} 
] 

我需要能够更新我的原始数组只是来自backu中的数据的位置字段P排列的和 其恢复到:

var result = 
[ 
{"referenceId":20,"callerId":1, "location":2}, 
{"referenceId":21,"callerId":1, "location":3} 
] 

是像这可能与_lodash?

+1

是的。没有任何图书馆也很容易。 (注意:是/否问题通常不是很好堆栈溢出问题) –

+0

@FelixKling - 感谢您的建议。我改变了我的问题的标题。希望有人可以给我一个例子,无论有没有_lodash。 – Melina

回答

1

创建备份阵列,就可以使用_.map或本机Array.prototype.map原来的对象转换为一个新的对象只有一个属性:

var resultBackup = _.map(result, function(e) { // or result.map(function(e) { 
    return {location: e.location}; 
}); 

然后恢复值,要“合并“结果对象与备份对象。罗短跑提供_.assign为:

_.forEach(result, function(e, index) { 
    _.assign(e, resultBackup[index]); 
}); 

或无库:

result.forEach(function(e, index) { 
    var backup = resultBackup[index]; 
    for (var prop in backup) { 
     e[prop] = backup[prop]; 
    } 
}); 
相关问题