javascript - 限制来自 JSON 文件的下拉菜单

标签 javascript jquery json

我想将我的 JSON 文件解析为一个选择框,但我希望下拉列表中只有一个值,而不是相同 KEY 的重复值。

{
    "car_make": "CADILLAC",
    "model": "CTS SPORTS WAGON MANUAL V8 RWD SUPERCHARGED",
    "engine_capacity": 6200.0,
    "body_type": "S/WAGON",
    "crsp": 5280463.0
  },
  {
    "car_make": "CADILLAC",
    "model": "CTS V WAGON MANUAL V8 RWD SUPERCHARGED",
    "engine_capacity": 6200.0,
    "body_type": "S/WAGON",
    "crsp": 8767560.0
  },
  {
    "car_make": "CADILLAC",
    "model": "STS MANUAL V8 AWD",
    "engine_capacity": 3600.0,
    "body_type": "SAL",
    "crsp": 6507501.0
  },
  {
    "car_make": "CADILLAC",
    "model": "DTS AUTO V8",
    "engine_capacity": 4600.0,
    "body_type": "SAL",
    "crsp": 6424919.0
  },
  {
    "car_make": "CADILLAC",
    "model": "SRX CROSSOVER FWD AUTO MANUAL V6",
    "engine_capacity": 3000.0,
    "body_type": "SUV",
    "crsp": 4764322.0
  },
  {
    "car_make": "CADILLAC",
    "model": "ESCALADE V8 AWD AUTO",
    "engine_capacity": 6200.0,
    "body_type": "SUV",
    "crsp": 8733788.0
  },
  {
    "car_make": "CADILLAC",
    "model": "ESCALADE HYBRID AUTO 2WD SFI RWD HYBRID",
    "engine_capacity": 6000.0,
    "body_type": "SUV",
    "crsp": 10203756.0
  },
  {
    "car_make": "CADILLAC",
    "model": "ESCALADE ESV AUTO V8 AWD",
    "engine_capacity": 6200.0,
    "body_type": "SUV",
    "crsp": 9095086.0
  },
  {
    "car_make": "CADILLAC",
    "model": "ESCALADE EXT AUTO V8 AWD",
    "engine_capacity": 6200.0,
    "body_type": "SUV",
    "crsp": 8555347.0
  }

在这种情况下,我只希望 car_make 成为下拉列表中的一个,这样 cadillac 就不会出现多次,希望你明白我想问的问题。我尝试使用 Javascript 和 flask 。

最佳答案

您可以混合使用 Array#mapArray#filter获得独特的 car_make:

let data = [{
    "car_make": "CADILLAC",
    "model": "CTS SPORTS WAGON MANUAL V8 RWD SUPERCHARGED",
    "engine_capacity": 6200.0,
    "body_type": "S/WAGON",
    "crsp": 5280463.0
  },
  {
    "car_make": "CADILLAC",
    "model": "CTS V WAGON MANUAL V8 RWD SUPERCHARGED",
    "engine_capacity": 6200.0,
    "body_type": "S/WAGON",
    "crsp": 8767560.0
  },
  {
    "car_make": "CADILLAC",
    "model": "STS MANUAL V8 AWD",
    "engine_capacity": 3600.0,
    "body_type": "SAL",
    "crsp": 6507501.0
  },
  {
    "car_make": "CADILLAC",
    "model": "DTS AUTO V8",
    "engine_capacity": 4600.0,
    "body_type": "SAL",
    "crsp": 6424919.0
  },
  {
    "car_make": "CADILLAC",
    "model": "SRX CROSSOVER FWD AUTO MANUAL V6",
    "engine_capacity": 3000.0,
    "body_type": "SUV",
    "crsp": 4764322.0
  },
  {
    "car_make": "CADILLAC",
    "model": "ESCALADE V8 AWD AUTO",
    "engine_capacity": 6200.0,
    "body_type": "SUV",
    "crsp": 8733788.0
  },
  {
    "car_make": "CADILLAC",
    "model": "ESCALADE HYBRID AUTO 2WD SFI RWD HYBRID",
    "engine_capacity": 6000.0,
    "body_type": "SUV",
    "crsp": 10203756.0
  },
  {
    "car_make": "CADILLAC",
    "model": "ESCALADE ESV AUTO V8 AWD",
    "engine_capacity": 6200.0,
    "body_type": "SUV",
    "crsp": 9095086.0
  },
  {
    "car_make": "CADILLAC",
    "model": "ESCALADE EXT AUTO V8 AWD",
    "engine_capacity": 6200.0,
    "body_type": "SUV",
    "crsp": 8555347.0
  }
];

let result = data
  .map(item => item.car_make)
  .filter((item, index, array) => {
    return array.indexOf(item) === index;
  });

console.log(result);

关于javascript - 限制来自 JSON 文件的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48644662/

相关文章:

jquery - HTTP 请求 jQuery AJAX

java - 如何使用 json-lib 制作类似的 json 格式?

javascript - 验证值是否为整数

javascript - 如何仅在旧电子邮件更新时显示 "Email Confirm"输入文本框?

JavaScript - 如何根据唯一的 # 从数组中获取唯一的 url?

jquery - 在网格中对 Div 进行排序

php - 需要使用 python 输出 json 的帮助

ios - 如何使用 Alamofire 在 Swift 3 中解析 JSON?

javascript - 重构两个 jQuery UI 自动完成功能,使其更加实用和干燥

java - 在 GWT 中使用连字符