使用javascript选择json数组中的特定项

时间:2017-05-07 12:30:57

标签: javascript json

我的result.json看起来像这样:

[
 {
  "id":"1",
  "label":"2017-03-30",
  "value":"1675000"
 },
 {
  "id":"2",
  "label":"2017-04-01",
  "value":"1440000"
 },
 {
  "id":"2",
  "label":"2017-04-02",
  "value":"830000"
 },
]

如何获取json数组中的特定项。
例如,如果

,我想为每个“值”创建一个输出
id=2 and label=2017-04-01

2 个答案:

答案 0 :(得分:2)

console.log(arr.filter(item => {
    return item.id === `2` && item.label === `2017-04-01`;
}));

建议改进:

var arr=[{
   "id":"1",
   "label":"2017-03-30",
   "value":"1675000"
 },
 {
   "id":"2",
   "label":"2017-04-01",
   "value":"1440000"
 },
 {
   "id":"2",
   "label":"2017-04-02",
   "value":"830000"
  },
];
console.log(...arr.filter(item => item.id === `2` && item.label === `2017-04-01`));

如果您只想要值:

console.log(...arr.filter(item => item.id === `2` && item.label === `2017-04-01`).map(e=>e.value));

http://jsbin.com/fimulelebi/edit?console

答案 1 :(得分:1)

使用forEach方法。易于使用和浏览项目。

var json = [
  {
    "id": "1",
    "label": "2017-03-30",
    "value": "1675000"
  },
  {
    "id": "2",
    "label": "2017-04-01",
    "value": "1440000"
  },
  {
    "id": "2",
    "label": "2017-04-02",
    "value": "830000"
  },
];

json.forEach(item => {
  if(item.id == "2" && item.label == "2017-04-01") {
    console.log(item.value);
  }
})