如何将对象的项放入数组中?[关闭]

How to put an object's items into an array? [closed]

提问人:Reza Rahem 提问时间:11/14/2023 更新时间:11/15/2023 访问量:93

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

7天前关闭。

我有一个对象,里面有一些其他对象。我想把所有这些内部对象都放到一个数组中。

我尝试了 for 循环,在每次迭代中,我都会将这些对象推送到数组中。问题是,当我记录数组时,在for循环完成后,它只会有最后插入的对象。我假设每次新的迭代都会设置一个新数组,并且在此过程中,以前的数组将被擦除。

现在我无法提供任何代码。但很快我就把所有东西都放在一个 repo 中并在这里分享。

谢谢

JavaScript 数组 TypeScript 对象

评论

0赞 Tal Rofe 11/14/2023
至少提供一个输入和输出示例
1赞 Reyno 11/14/2023
“现在我无法提供任何代码。但很快我就把所有东西都放在一个回购中,并在这里分享。请只向我们提供一个最小的、可重现的示例,而不是在外部站点/存储库中,而是在您的问题中。

答:

-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
它需要使用吗?我认为已经足够了。forObject.values(obj)
0赞 Peter Seliger 11/14/2023
的返回值是多少?赋值时有什么不同,例如......而上面的迭代解决方案呢?Object.values(obj)outputconst output = Object.values(obj)
0赞 Reza Rahem 11/15/2023
这个工作很完美。谢谢兄弟
0赞 duckstery 11/15/2023
是的,独自一人是可以的。但是,如果有字符串或数字值怎么办。您仍然需要使用它们来过滤掉它们。就像我说的,将返回一个数组,其中包含每个键的对象值Object.values(obj)objforObject.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; }