Заполнить массив объектов другим массивом объектов - PullRequest
1 голос
/ 08 мая 2020

У меня есть массив объектов:

source_array = [
    {
        "prop1":"one",
        "prop2":"two",
        "prop3":"three"
    },
    {
        "prop1":"four",
        "prop2":"five",
        "prop3":"six"
    }
]

и объявление destination_array:

destination_array: { prop1: any, prop2: any }[];

Теперь я хочу заполнить destination_array, чтобы я взял только prop1 и prop2 из source_array вот так:

[
    {
        "prop1":"one",
        "prop2":"two"

    },
    {
        "prop1":"four",
        "prop2":"five"
    }
]

Я пробовал это:

this.objectArray = new Array(this.performances.length)
this.performances.filter(item => {
  this.objectArray.fill({'prop1':item.prop1, 'prop2':item.prop2})
});

, но это вернет только:

[
    {
        "prop1":"four",
        "prop2":"five"

    },
    {
        "prop1":"four",
        "prop2":"five"
    }
]

что такое Я делаю не так?

Ответы [ 3 ]

2 голосов
/ 08 мая 2020

Попробуйте следующее:

this.destinations = this.performances.map(performance => ({
  prop1: performance.prop1,
  prop2: performance.prop2
}));
console.log(this.destinations);

Рабочий пример: https://stackblitz.com/edit/angular-filter-array-properties?file=src / app / app.component.ts

1 голос
/ 08 мая 2020

Думаю, вы ищете функцию Array.map

const destination_array = source_array.map(item => {
    return {prop1: item.prop1, prop2: item.prop2}
});
0 голосов
/ 08 мая 2020

Используйте Array.Map()

var source_array = [
    {
        "prop1":"one",
        "prop2":"two",
        "prop3":"three"
    },
    {
        "prop1":"four",
        "prop2":"five",
        "prop3":"six"
    }
];

var results = source_array.map(function(item){
  return {prop1 : item["prop1"], prop2 : item["prop2"]}
});

console.log(results);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...