[英]How to iterate through multiple object keys in 1 for() loop
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 个对象,并为它们的每个键添加一个“类型”键,以便我可以通过它们进行过滤,但我认为有预过滤键作为它们自己的顶级对象更具可读性。
您可以使用两个循环并将代码移动到一个函数中以避免重复。
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) {
// ...
}
所以我只是想出了一个有趣的解决方法,类似于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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.