Сопоставить массив в массиве push

У меня есть этот пустой массив:

 prices: [
      {
          price:null,
          zone_id: null,
      }
 ]

как я могу сопоставить свои данные с этим пустым массивом? Пример данных.

product:[
   0:{
       brand: 'a',
       size: '11',
       price: '120',
       zone_id: '1'
   }
]

Как я могу вставить только цену и идентификатор зоны в этот пустой массив цен

что у меня есть прямо сейчас.

this.prices.push(product);

значение массива цен должно быть

prices:[
   {
      price: '120',
      zone_id: '1'
   }
]

Вы имеете в виду вот так: this.prices.push({price:product[0].price,zone_id:product[0].‌​zone_id});

Hackerman 10.07.2018 17:11

Невозможно прочитать цену свойства undefined, есть эта ошибка, но да, что-то в этом роде

Dhenz 10.07.2018 17:13
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
2
43
1

Ответы 1

Если у вас пустой массив prices:

let prices = [];

и массив данных product, содержащий информацию о каждом продукте:

let product = [
   {
       brand: 'a',
       size: '11',
       price: '120',
       zone_id: '1'
   }, 
   {
       brand: 'b',
       size: '19',
       price: '200',
       zone_id: '4'
   }
];

Один продукт:

Вы можете вставить price и zone_id первого продукта в массив prices следующим образом (используя деструктуризация объекта):

prices.push((({price, zone_id}) => ({price, zone_id}))(product[0]));

Все продукты: Если вы хотите сделать то же самое для всех продуктов, вы можете использовать цикл forEach:

product.forEach(p => {
    prices.push((({price, zone_id}) => ({price, zone_id}))(p));
});

Все товары (замена):

Если вы хотите добавить все продукты и не заботитесь об исходном содержимом массива prices (или если вы знаете, что он будет пустым), вы можете просто использовать карту, чтобы применить ту же функцию к каждой записи product и сохранить результат в prices:

prices = product.map(({price, zone_id}) => ({price, zone_id}));

привет olln, я получил эту ошибку: не могу прочитать свойство "цена" неопределенного

Dhenz 10.07.2018 17:17

Вероятно, вы неправильно объявили массив product. В исходном посте вы написали: product:[ 0:{ brand: 'a', size: '11', price: '120', zone_id: '1' } ] Но это неверно. Чтобы сохранить что-то в переменной, вам нужно использовать = и let / const / var, например: let product = ... И вы не можете использовать «ключ: значение» для элементов в массиве (нет 0:...). Попробуйте: let product = [ { brand: 'a', size: '11', price: '120', zone_id: '1' } ]

Ollin Boer Bohan 10.07.2018 17:21

Другие вопросы по теме