我需要做一些数组操作,并希望有人
告诉我_lodash是否是我可以使用的东西。是)我有的
是一个名为result
的数组,其中包含以下内容:
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}
]
我需要能够仅使用备份阵列中数据的位置字段来更新我的原始数组 将其恢复为:
var result =
[
{"referenceId":20,"callerId":1, "location":2},
{"referenceId":21,"callerId":1, "location":3}
]
使用_lodash可以实现这样吗?
答案 0 :(得分:0)
要创建备份阵列,您可以使用_.map
或本机Array.prototype.map
将原始对象转换为只有一个属性的新对象:
var resultBackup = _.map(result, function(e) { // or result.map(function(e) {
return {location: e.location};
});
然后,要恢复这些值,您需要将结果对象与备份对象“合并”。 Lo-Dash为此提供_.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];
}
});