javascript - 使用数组内的对象进行解构赋值

标签 javascript arrays object ecmascript-6

有没有办法使用解构分配从对象数组中解压值?

[

{a : 1},
{a : 1},
{a : 1},
{a : 1}

]

这里我需要的结果是一个数组:[1,1,1,1]

最佳答案

解构需要创建 4 个单独的变量,然后将它们重新组合成一个数组。这会很湿,而且没有多大意义,但如果你必须:

const arr = [
  {a : 1},
  {a : 1},
  {a : 1},
  {a : 1}
]
const [{ a: item1 }, { a: item2 }, {a: item3}, {a: item4 }] = arr;
const newArrOfAs = [item1, item2, item3, item4];
console.log(newArrOfAs);

使用reduce的原始代码更好,但更合适的是使用Array.prototype.map,因为输入数组和输出数组的项目是一个 -一对一:

const arr = [
  {a : 1},
  {a : 1},
  {a : 1},
  {a : 1}
]
const newArrOfAs = arr.map(({ a }) => a);
console.log(newArrOfAs);

关于javascript - 使用数组内的对象进行解构赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773086/

相关文章:

ruby - 是否可以更改 Ruby 对象的类?

javascript - 以数组形式返回对象的所有键或值的函数

c++ - 在 C++ 中,如何确保一个对象在另一个对象之前构造?

javascript - 将 CSS(垂直线)应用于父文档中的 iFrame

javascript - geojson 文件格式问题,较大坐标数组内的迷你数组(坐标)

java - 似乎无法使其发挥作用。无法按照我想要的方式得到中位数

java - 在java中使用数组

javascript - 内联 CKEditor 关闭后获取修改内容

javascript - 选择表,检查并在值匹配时提示

java - Swift vs Java - 填充大数组的速度