获取给定密钥json javascript的值集列表

时间:2017-06-16 14:41:32

标签: javascript json

鉴于我有这个Json:

{
  "REGIÃO": "BH CENTRO NORTE HPF",
  "TIPO DE VERBA": "VISIBILIDADE",
  "VALOR PLANEJADO": "R$1,452.00",
  "VALOR APURADO": "R$0.00",
  "SALDO FINAL": "R$1,452.00"
},
{
  "REGIÃO": "BH KEY ACCOUNT HPF",
  "TIPO DE VERBA": "OFERTA FÍSICA",
  "VALOR PLANEJADO": "R$54.74",
  "VALOR APURADO": "R$0.00",
  "SALDO FINAL": "R$54.74"
},
{
  "REGIÃO": "BH KEY ACCOUNT HPF",
  "TIPO DE VERBA": "REBAIXA DE PREÇO OFF",
  "VALOR PLANEJADO": "R$57,456.88",
  "VALOR APURADO": "R$0.00",
  "SALDO FINAL": "R$57,456.88"
},
{
  "REGIÃO": "BH KEY ACCOUNT HPF",
  "TIPO DE VERBA": "VISIBILIDADE",
  "VALOR PLANEJADO": "R$563,651.25",
  "VALOR APURADO": "R$0.00",
  "SALDO FINAL": "R$563,651.25"
}

我想获得一个关键"REGIÃO"的一组值,所以对于这个例子,我会得到这个:

[BH CENTRO NORTE HPF, BH KEY ACCOUNT HPF]

如何使用foreach并将值推送到数组然后删除重复项?

1 个答案:

答案 0 :(得分:1)

假设这些对象包含在数组中,您可以执行以下操作:

const data = [{
  "REGIÃO": "BH CENTRO NORTE HPF",
  "TIPO DE VERBA": "VISIBILIDADE",
  "VALOR PLANEJADO": "R$1,452.00",
  "VALOR APURADO": "R$0.00",
  "SALDO FINAL": "R$1,452.00"
},
{
  "REGIÃO": "BH KEY ACCOUNT HPF",
  "TIPO DE VERBA": "OFERTA FÍSICA",
  "VALOR PLANEJADO": "R$54.74",
  "VALOR APURADO": "R$0.00",
  "SALDO FINAL": "R$54.74"
},
{
  "REGIÃO": "BH KEY ACCOUNT HPF",
  "TIPO DE VERBA": "REBAIXA DE PREÇO OFF",
  "VALOR PLANEJADO": "R$57,456.88",
  "VALOR APURADO": "R$0.00",
  "SALDO FINAL": "R$57,456.88"
},
{
  "REGIÃO": "BH KEY ACCOUNT HPF",
  "TIPO DE VERBA": "VISIBILIDADE",
  "VALOR PLANEJADO": "R$563,651.25",
  "VALOR APURADO": "R$0.00",
  "SALDO FINAL": "R$563,651.25"
}]

const newData = data.map(obj => obj["REGIÃO"]).filter((v, i, self) => i == self.indexOf(v))

console.log(newData)

map仅从每个对象中选择REGIÃO键的值,并将它们放入和数组中。以下过滤器通过检查元素的索引是否与其第一次出现的索引相同来删除重复项。如果它们不相等,则将其从数组中删除。