У меня есть этот пустой массив:
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'
}
]
Невозможно прочитать цену свойства undefined, есть эта ошибка, но да, что-то в этом роде



Если у вас пустой массив 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, я получил эту ошибку: не могу прочитать свойство "цена" неопределенного
Вероятно, вы неправильно объявили массив 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' } ]
Вы имеете в виду вот так:
this.prices.push({price:product[0].price,zone_id:product[0].zone_id});