【发布时间】:2017-10-10 19:22:30
【问题描述】:
有没有办法用 ES5 / ES6 优化以下内容?
var obj = [];
var set;
for (var key_s in data1) {
set = false;
for (var key_s2 in data2) {
if (data1[key_s].id === data2[key_s2].id) {
obj.push({'id': data1[key_s].id,
'key': data1[key_s].key,
'value': data2[key_s2].value})
set = true;
break;
}
}
if (!set)
obj.push({'id': data1[key_s].id,
'key': data1[key_s].key,
'value': "EMPTY"})
}
我想要一个包含data1 的所有键的对象,如果一对具有相同的id,就像data2 中的一样,它应该采用它的value,否则它应该变成'EMPTY' .或者有没有办法将Object.assign 与一些特殊参数或其他东西一起使用?
【问题讨论】:
-
从什么意义上优化?效率?可读性?
-
请同时添加
data1和data2以及想要的结果。 -
data1和data2都是数组吗?
标签: javascript ecmascript-6 ecmascript-5