有没有一种方法只能在基于数组的json对象中显示所选属性

时间:2019-03-29 20:38:46

标签: javascript json

我有以下对象

calendarLists = [
    {Title: titel1, Color:blue, number:1}
    {Title: titel2, Color:green, number:2}]
    {Title: titel3, Color:red, number:3}
]

它具有更多的属性,但为简单起见,请仅显示3个属性。我也有一个关注数组[Title,number]

现在基于数组,我只想显示基于数组的对象属性。我的结果应该是

results =[{Title: titel1, , number:1},{Title: titel2, , number:2},{Title: titel3, , number:3}]

2 个答案:

答案 0 :(得分:1)

您可以将所需的属性映射为对象,将它们收集到单个对象中,然后将所有对象映射为一个新数组。

var calendarLists = [{ Title: 'titel1', Color: 'blue', number: 1 }, { Title: 'titel2', Color: 'green', number: 2 }, { Title: 'titel3', Color: 'red', number: 3 }],
    keys = ['Title', 'number'],
    result = calendarLists.map(o => Object.assign(...keys.map(k => ({ [k]: o[k] }))));

console.log(result);

destructuring assignmentshort hand properties相同。

var calendarLists = [{ Title: 'titel1', Color: 'blue', number: 1 }, { Title: 'titel2', Color: 'green', number: 2 }, { Title: 'titel3', Color: 'red', number: 3 }],
    result = calendarLists.map(({ Title, number }) => ({ Title, number }));

console.log(result);

答案 1 :(得分:0)

您的calendarLists语法错误。您可以映射此数组并过滤所需的属性。

calendarLists = [{
    Title: 'titel1',
    Color: 'blue',
    number: 1
  },
  {
    Title: 'titel2',
    Color: 'green',
    number: 2
  },
  {
    Title: 'titel3',
    Color: 'red',
    number: 3
  }
];

result = calendarLists.map(
  calendarList => {
    return {
      Title: calendarList.Title,
      number: calendarList.number
    }
  }
);

console.log(result);