提问人:Reza Rahem 提问时间:11/14/2023 更新时间:11/15/2023 访问量:93
如何将对象的项放入数组中?[关闭]
How to put an object's items into an array? [closed]
问:
我有一个对象,里面有一些其他对象。我想把所有这些内部对象都放到一个数组中。
我尝试了 for 循环,在每次迭代中,我都会将这些对象推送到数组中。问题是,当我记录数组时,在for循环完成后,它只会有最后插入的对象。我假设每次新的迭代都会设置一个新数组,并且在此过程中,以前的数组将被擦除。
现在我无法提供任何代码。但很快我就把所有东西都放在一个 repo 中并在这里分享。
谢谢
答:
-1赞
duckstery
11/14/2023
#1
希望这会有所帮助
let objectA = {a: 'value A'}
let objectB = {b: 'value B'}
let objectC = {c: 'value C'}
let obj = {objectA, objectB, objectC}
let output = [];
for (let value of Object.values(obj)) {
// Filter here if needed
output.push(value);
}
console.warn(output)
尝试在循环之外创建数组以防止出现这种情况
Object.values
将返回一个数组,其中包含每个键的对象值。如果同时需要键和值,可以改用Object.entries
评论
0赞
Adrid
11/14/2023
它需要使用吗?我认为已经足够了。for
Object.values(obj)
0赞
Peter Seliger
11/14/2023
的返回值是多少?赋值时有什么不同,例如......而上面的迭代解决方案呢?Object.values(obj)
output
const output = Object.values(obj)
0赞
Reza Rahem
11/15/2023
这个工作很完美。谢谢兄弟
0赞
duckstery
11/15/2023
是的,独自一人是可以的。但是,如果有字符串或数字值怎么办。您仍然需要使用它们来过滤掉它们。就像我说的,将返回一个数组,其中包含每个键的对象值Object.values(obj)
obj
for
Object.values
1赞
Adrid
11/14/2023
#2
可以使用 Object.values
。
const obj = {
objectA: { a: "898738" },
objectB: { b: "123123" },
objectC: { c: "23122321" },
};
const output = Object.values(obj);
console.log({ output });
.as-console-wrapper { min-height: 100%!important; top: 0; }
评论