Заменить массив объектов другим массивом в JS - PullRequest
0 голосов
/ 17 октября 2019

У меня есть массив предметов. Каждый элемент в массиве имеет набор свойств. Один из них называется config: object[]. Это массив объектов.

Обычно я предоставляю полный объект с правильным массивом config объектов, но для некоторых моих тестов я хочу передать различные параметры конфигурации. Например wrong config array, empty array и т.д ..

Вот мой код:

    const connectionResources = [Array.forEach(object => object.config === [])]
    connectionResources.forEach(builtInOptions => console.log(builtInOptions))

Это то, что я пробовал. Я пытался выложить Массив, но там тоже не повезло.

Может кто-нибудь помочь мне здесь? Я в основном хочу, чтобы у моего массива объектов было пустое свойство массива конфигурации вместо исходного объекта. Как это сделать?

Ответы [ 2 ]

2 голосов
/ 17 октября 2019

Пример данных

let resources = [{
    config: [{}, {}]
}, {
    config: [{}, {}]
}];

Пустое свойство конфигурации

resources = resources.map(resource => {
    resource.config = [];
    return resource;
});
1 голос
/ 17 октября 2019

Я пытался распространить массив, но и там тоже не повезло.

Во-первых, если вы хотите распространить массив, вы должны использовать оператор распространения;например, ...myArray.

Array.forEach

Во-вторых, Array.prototype.forEach возвращает undefined, а Array.forEach - это undefined (если только вы не назвали свой массив Array, который вы не должны делать, так как это затеняет класс Array).

Теперь по существу, то, что вам нужно, по сутиArray.prototype.map

let original = [{a: 3, config: [4, 5], b: 6}, {a: 13, config: [14, 15], b: 16}];

let emptyConfig = original.map(o => ({...o, config: []}));
let hundredConfig = original.map(o => ({...o, config: [100, 101, 102]}));

console.log(original);
console.log(emptyConfig);
console.log(hundredConfig);
...