如何获取数组对象中特定键的所有值?

5

我有如下结构的对象数组

const object1 = {
  a: 'somestring',
  b: 42,
  c: false
};
const object2 = {
  a: 'somestring2',
  b: 42,
  c: false
};
const object3 = {
  a: 'somestring3',
  b: 42,
  c: false
};
const arr = [object1,object2,object3]

我想获取所有 'a' 键的值,结果应该是 ['somestring', 'somestring2', 'somestring3']。我尝试了使用 Object.values(),但它会返回所有键的值,这不是我想要的输出结果。

1
看起来是一篇不错的文章:https://contactmentor.com/javascript-map-array-of-objects/ - PM 77-1
2个回答

4

只需使用map()函数即可:

const arr = [object1,object2,object3].map(({a}) => (a))

一个例子:

const object1 = {
  a: 'somestring',
  b: 42,
  c: false
};
const object2 = {
  a: 'somestring2',
  b: 42,
  c: false
};
const object3 = {
  a: 'somestring3',
  b: 42,
  c: false
};
const arr = [object1,object2,object3].map(({a}) => (a))
console.log(arr)


它应该返回 ['somestring','somestring2','somestring3'],而不是 [{a:'somestring'},{a:'somestring2'},{a:'somestring3'}] - Abdel-Rahman
1
@Abdel-Rahman,请查看我的更新答案。 - StepUp

1

你尝试过使用 const arr = [object1.a, object2.a, object3.a] 吗?这可能有效。


1
默认情况下,JavaScript 中没有封装任何内容。虽然有方法可以实现封装,但如果没有明确的技术手段,所有属性和方法都是可用的。此外,虽然您的答案可以产生正确的结果,但我认为他们想要一个通用解决方案,不需要明确知道数组中所有元素的情况。 - Darrin Cullop
你的回答目前写得不清楚。请进行 [编辑],添加更多详细信息,以帮助其他人了解它如何回答所提出的问题。你可以在 帮助中心 中找到有关如何撰写好的回答的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接