x = {a:1,b:2}
y = {c:3,d:4}
for (k in x+y) {
console.log(k)
}
期望的输出:
a
b
c
d
我更习惯Python,在这种情况下这会更容易,但Javascript似乎不允许我这样做。我想以最简单的方式来做这件事,因为简单就是幸福。如果我不能简单地做到这一点,我担心我可能需要将x和y组合成1个对象并为每个键添加一个“类型”键,以便我可以通过它们进行过滤,但我认为过滤后的密钥作为自己的顶级对象更具可读性。
答案 0 :(得分:3)
您可以使用两个循环并将代码移动到函数中以避免重复。
function iteration(key) {
// ...
}
for (var key in x) iteration(key);
for (var key in y) iteration(key);
或者将两个对象合并为一个新对象
for (var key in Object.assign({}, x, y) {
// ...
}
答案 1 :(得分:0)
所以我只想找到一个有趣的解决方法,类似于Object.assign
方式,但没有为它创建新对象。
实际上,您可以同时对两个对象进行for/in
循环,并按照与Object.assign()
相同的方式对它们进行排序,以获得相同的结果。
举个例子:
var x = {a:1,b:2};
var y = {c:3,d:4};
// only since you want them in alphabetical order,
// same as I do obviously, you can do the following:
for(var key in x, y) {
x[key] = y[key];
}
给出了这个输出:
x = {
"a": 1,
"b": 2,
"c": 3,
"d": 4
}