如何剪切对象数组以获取打字稿中的特定属性

时间:2019-01-11 09:35:47

标签: angular typescript

我有一个像这样的数组

<Switch>
      <Route
        exact
        path={`${this.props.match.url}/table`}
        component={DataTable}
      />
</Switch>

我只想从这样的数组中获取“ id”属性

array = [
{
  id: 1,
  name: 'Apple',
  color: 'red
},
{
  id: 2,
  name: 'Orange',
  color: 'orange'
},
{
  id: 3,
  name: 'Banana',
  color:'yellow'
},
{
  id: 4,
  name: 'Malta',
  color:'orange'
}
];

应该如何处理这种情况。 我尝试了filter方法,map方法,但是没有用

3 个答案:

答案 0 :(得分:5)

使用map运算符可以像这样遍历数组-

array.map(res => {return {id: res.id}})

PS-或@amadan在评论中建议的另一种快捷方式

array.map(({id}) => ({id}))

答案 1 :(得分:1)

在数组上使用map

var initial = [{
    id: 1,
    name: 'Apple',
    color: 'red'
  },
  {
    id: 2,
    name: 'Orange',
    color: 'orange'
  },
  {
    id: 3,
    name: 'Banana',
    color: 'yellow'
  },
  {
    id: 4,
    name: 'Malta',
    color: 'orange'
  }
];

var finalArray = initial.map(item => {
  return {
    id: item.id
  }
});

console.log(finalArray);

答案 2 :(得分:0)

您可以使用map来获取id属性,

 arrayData.map(a => {
  return {
    id: a.id
  }
 })

var arrayData = [{
    id: 1,
    name: 'Apple',
    color: 'red'
  },
  {
    id: 2,
    name: 'Orange',
    color: 'orange'
  },
  {
    id: 3,
    name: 'Banana',
    color: 'yellow'
  },
  {
    id: 4,
    name: 'Malta',
    color: 'orange'
  }
];

const newarray = arrayData.map(a => {
  return {
    id: a.id
  }
})
console.log(newarray);