数组推送中的映射数组

时间:2018-07-10 14:55:52

标签: arrays json vue.js

我有这个空数组:

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

我如何将数据映射到这个空数组? 示例数据。

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

如何仅将价格和区域ID推入该空价格数组

我现在有什么。

this.prices.push(product);

价格数组的值应为

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

1 个答案:

答案 0 :(得分: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'
   }
];

单个产品

您可以像这样(使用object destructuring)将第一个产品的pricezone_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}));