如何在nodejs中过滤JSON

时间:2014-07-07 20:01:46

标签: javascript json filter

我将以下JSON存储在名为data的变量中。如何过滤它除了“0”值?

{
  "BTC": "0",
  "XCP": "0",
  "LTC": "0",
  "NXT": "0",
  "XPM": "0",
  "NMC": "0",
  "MMC": "0",
  "NOBL": "0",
  "USDE": "0",
  "SOC": "0",
  "KDC": "0",
  "DOGE": "0.00000001",
  "GLB": "0",
  "Q2C": "0",
  "FOX": "0",
  "MRC": "0",
  "MTS": "0"
}

我试过了:

   var datos = data.filter(function(data){
    return !!data;
    });
    res.send(data);

但它告诉我

  

对象#没有方法'过滤'

此致

2 个答案:

答案 0 :(得分:2)

对象没有过滤方法,如果要使用数组过滤方法,则需要将对象转换为数组。

但要回答这个问题,

var newData = {};

for(i in data){
    if(data.hasOwnProperty(i) && data[i] != "0"){
       newData[i] = data[i];
    }
}

答案 1 :(得分:1)

var dataObj = {
  "BTC": "0",
  "XCP": "0",
  "LTC": "0",
  "NXT": "0",
  "XPM": "0",
  "NMC": "0",
  "MMC": "0",
  "NOBL": "0",
  "USDE": "0",
  "SOC": "0",
  "KDC": "0",
  "DOGE": "0.00000001",
  "GLB": "0",
  "Q2C": "0",
  "FOX": "0",
  "MRC": "0",
  "MTS": "0"
}

var keys = Object.keys(dataObj);
keys.forEach(function(key){ if(dataObj[key] === "0") delete dataObj[key];})

console.log(dataObj);