【问题标题】:Map array in array push数组推送中的映射数组
【发布时间】:2018-12-18 11:42:40
【问题描述】:

我有这个空数组:

 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'
   }
]

【问题讨论】:

  • 你的意思是这样的:this.prices.push({price:product[0].price,zone_id:product[0].zone_id});
  • Cannot read property 'price' of undefined 得到了那个错误,但是是这样的

标签: arrays json vue.js


【解决方案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'
   }
];

单一产品

您可以像这样将第一个产品的pricezone_id 推送到prices 数组中(使用object destructuring):

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}));

【讨论】:

  • 嗨,我收到此错误:无法读取未定义的属性“价格”
  • 您可能没有正确声明product 数组。在您写的原始帖子中:product:[ 0:{ brand: 'a', size: '11', price: '120', zone_id: '1' } ] 但这是无效的。要将某些内容存储在变量中,您需要使用 =let/const/var,例如:let product = ... 您不能对数组中的项目使用“key:value”(否0:...)。试试:let product = [ { brand: 'a', size: '11', price: '120', zone_id: '1' } ]
猜你喜欢
  • 2022-09-28
  • 2020-01-31
  • 2020-12-09
  • 1970-01-01
  • 2018-03-20
  • 2016-05-21
  • 1970-01-01
  • 2020-07-27
  • 2020-09-25
相关资源
最近更新 更多