简体   繁体   English

如何在Node.js中过滤JSON

[英]How to filter a JSON in nodejs

I have the following JSON stored in a variable named data. 我将以下JSON存储在名为data的变量中。 How can i filter it excluding the "0" values? 如何过滤除“ 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"
}

I tried: 我试过了:

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

but it's telling me 但这是在告诉我

Object # has no method 'filter' 对象#没有方法'filter'

Regards, 问候,

Objects dont have a filter method, you need to convert your object to an array if you want to use the array filter method. 对象没有过滤器方法,如果要使用数组过滤器方法,则需要将对象转换为数组。

But to answer the question, 但是要回答这个问题,

var newData = {};

for(i in data){
    if(data.hasOwnProperty(i) && data[i] != "0"){
       newData[i] = data[i];
    }
}
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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM