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

标签 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"}

寻找类似的东西

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

这样我就可以通过执行x['pant']

来获得所有类型的服务及其价格

最佳答案

使用数组reduce函数并按名称pant创建一个键。检查 key 是否存在,然后推送 serviceprice

的值

预期的对象也是无效的。对象键由冒号分隔 (:) 按照这种格式

obj = {
  key:value
}

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)

关于javascript - 我如何在 JavaScript 中准备嵌套键值对列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50265131/

相关文章:

javascript - 无法以编程方式在 Angular JS 中的 SELECT 元素上使用 2 路绑定(bind)

javascript - 模态进度条打破了我的下拉菜单 bootstrap 3.x

创建均匀分布的 double 值数组

java - 使用 for 循环搜索值和

Javascript 向下转型对象

javascript - 清除 Angular6 中表单的提交状态

javascript - 将一系列 JSON 数据从 php 回显到 JavaScript,

Javascript 单例模式

javascript - 仅当值不存在时才向对象添加新的数组条目

javascript - Javascript:Function和Class有什么区别