如何在JavaScript中准备嵌套键值对列表

Muk*_*gal 0 javascript arrays javascript-objects

我有像行的数据

1. {type:"pant", service:"normal", price:"30"}
2. {type:"pant", service:"premium 1", price:"50"}
3. {type:"pant", service:"premium 2", price:"70"}
4. {type:"pant", service:"premium 3", price:"100"}
Run Code Online (Sandbox Code Playgroud)

寻找类似的东西

var x = {"pant", [{service:"normal", price:"30"},{service:"premium 1", price:"50"} ,{service:"premium 2", price:"70"}, {service:"premium 3", price:"100"}]}
Run Code Online (Sandbox Code Playgroud)

这样我就可以通过x ['喘气']获得所有类型的服务和价格

brk*_*brk 5

使用数组缩减功能并按名称创建密钥pant.检查键存在,那么推动的价值serviceprice

预期对象也是无效的.对象键:以此格式用冒号()分隔

obj = {
  key:value
}
Run Code Online (Sandbox Code Playgroud)

var data = [{
  type: "pant",
  service: "normal",
  price: "30"
}, {
  type: "pant",
  service: "premium 1",
  price: "50"
}, {
  type: "pant",
  service: "premium 2",
  price: "70"
}, {
  type: "pant",
  service: "premium 3",
  price: "100"
}]

var x = data.reduce(function(acc, curr, currIndex) {
  if (!acc[curr.type]) {
    acc[curr.type] = []
  }

  acc[curr.type].push({
    service: curr.service,
    price: curr.price
  })

  return acc;


}, {});

console.log(x)
Run Code Online (Sandbox Code Playgroud)