传播运算符以获取数组内对象的单个属性-JS / TS

时间:2019-04-27 05:57:21

标签: javascript typescript ecmascript-6

让我说:

const arr = [
  {label: 1, value: "One"},
  {label: 2, value: "two"}
}

我想从中获取value作为字符串,

传统方式:

const strArr = [];
arr.forEach(ele => {strArr.push(ele.value)});
console.log(strArr);

但是我可以使用传播算子或其他任何方式吗?

4 个答案:

答案 0 :(得分:3)

您可以使用Array#map方法。

const arr = [{
    label: 1,
    value: "One"
  },
  {
    label: 2,
    value: "two"
  }
]

let res = arr.map(o => o.value)
// or in case you want to create an object with only value 
// property then you can use Destructuring
// .map(({ value }) => ({ value }))

console.log(res)

答案 1 :(得分:2)

您可以通过定义映射函数来使用Array.from

const arr = [
  {label: 1, value: "One"},
  {label: 2, value: "two"}
];

const vals = Array.from(arr, o => o.value);
console.log(vals);

答案 2 :(得分:1)

您不能使用传播运算符来做到这一点。请改用map()

const arr = [{label: 1, value: "One"}, {label: 2, value: "two"}]

const res = arr.map(x => x.value);
console.log(res)

答案 3 :(得分:1)

在这种情况下,我也会使用.map()。但是,如果您真的想使用传播运算符,则可以这样做。

list