Javascript 如何为json数据添加过滤器

Javascript 如何为json数据添加过滤器,javascript,json,Javascript,Json,我的json数据中有很多这样的条目。“类型”包括tw属性,即收入和支出。如何使用JavaScript打印type=“expense”的“标签”。 下面的json数据只是一个示例。 我尝试了下面写的代码,但它不起作用 if($ctrl.gold_standard_categories.name.type=expense){ console.log($ctrl.gold_standard_categories.label); } 由于if语句中有一个等号,所以它会打印所有

我的json数据中有很多这样的条目。“类型”包括tw属性,即收入和支出。如何使用JavaScript打印type=“expense”的“标签”。 下面的json数据只是一个示例。

我尝试了下面写的代码,但它不起作用

  if($ctrl.gold_standard_categories.name.type=expense){
       console.log($ctrl.gold_standard_categories.label);
  } 

由于
if
语句中有一个等号,所以它会打印所有数据

这意味着您总是试图将值“expense”分配给
类型
属性,因此
if
语句的计算结果将始终为true


您打算做的是值,而不是赋值。

它打印所有数据,因为您的
if
语句中只有一个等号

这意味着您总是试图将值“expense”分配给
类型
属性,因此
if
语句的计算结果将始终为true

您打算做的是值,而不是赋值。

假设在
var
money
中存储json响应

var grouppedMoney = {
    expenses: [],
    incomes: []
 };

for(var i = 0; i <= money.length - 1; i++){

    for(moneyType in money[i]){
    var _typeString = money[i][moneyType].type == 'expense' ? 'expenses' : 'incomes';

    grouppedMoney[_typeString].push(money[i][moneyType]);

  }

}
var grouppedMoney={
费用:[],
收入:[]
};
对于(var i=0;i

假设在
var
money
中存储json响应

var grouppedMoney = {
    expenses: [],
    incomes: []
 };

for(var i = 0; i <= money.length - 1; i++){

    for(moneyType in money[i]){
    var _typeString = money[i][moneyType].type == 'expense' ? 'expenses' : 'incomes';

    grouppedMoney[_typeString].push(money[i][moneyType]);

  }

}
var grouppedMoney={
费用:[],
收入:[]
};

对于(var i=0;i这里是一个基本示例。迭代对象,查看
类型
值等于
费用
,然后打印
标签
值。
var数据={
“兽医费用”:{
“标签”:“兽医、育种和医药”,
“名称”:“费用”,
“总计”:0,
“类型”:“收入”
},
“汽车费用”:{
“标签”:“公共汽车和卡车”,
“名称”:“车辆费用”,
“总计”:0,
“类型”:“费用”
}
};
for(数据中的var属性){
if(data.hasOwnProperty(property)){
//做事
如果(数据[属性]['type']=='expense'){
log(数据[属性]['label']);
}
}

}
这是一个基本示例。在对象上迭代,查看
类型
值等于
费用
,然后打印
标签
值。
var数据={
“兽医费用”:{
“标签”:“兽医、育种和医药”,
“名称”:“费用”,
“总计”:0,
“类型”:“收入”
},
“汽车费用”:{
“标签”:“公共汽车和卡车”,
“名称”:“车辆费用”,
“总计”:0,
“类型”:“费用”
}
};
for(数据中的var属性){
if(data.hasOwnProperty(property)){
//做事
如果(数据[属性]['type']=='expense'){
log(数据[属性]['label']);
}
}

} /代码> < p>看起来您正在使用angurjs(<代码> $CTRL< /COD>),因此您可以考虑使用本机角过滤器或自定义过滤器来执行此操作。

顺便说一句,使用vanilla JS,这个简单的循环可以工作:

for(var key in jsonData) {
  if("expense" === jsonData[key]["type"]) {
    console.log(jsonData[key]["label"]);
  }
}
示例片段

var jsonData={
“费用商品”:{
“名称”:“费用和货物”,
“标签”:“销售商品成本”,
“类型”:“费用”,
“总数”:0
},
“费用化”:{
“名称”:“车辆费用”,
“标签”:“汽车和卡车费用”,
“类型”:“费用”,
“总数”:0
},
“化学药品费用”:{
“名称”:“化学品费用”,
“标签”:“化学品”,
“类型”:“费用”,
“总数”:0
},
“费用节约”:{
“名称”:“费用和保护”,
“标签”:“保护费用”,
“类型”:“其他”,
“总数”:0
}
}
for(jsonData中的var键){
如果(“费用”==jsonData[键][“类型”]){
log(jsonData[key][“label”]);
}

} /代码> < p>看起来您正在使用angurjs(<代码> $CTRL< /COD>),因此您可以考虑使用本机角过滤器或自定义过滤器来执行此操作。

顺便说一句,使用vanilla JS,这个简单的循环可以工作:

for(var key in jsonData) {
  if("expense" === jsonData[key]["type"]) {
    console.log(jsonData[key]["label"]);
  }
}
示例片段

var jsonData={
“费用商品”:{
“名称”:“费用和货物”,
“标签”:“销售商品成本”,
“类型”:“费用”,
“总数”:0
},
“费用化”:{
“名称”:“车辆费用”,
“标签”:“汽车和卡车费用”,
“类型”:“费用”,
“总数”:0
},
“化学药品费用”:{
“名称”:“化学品费用”,
“标签”:“化学品”,
“类型”:“费用”,
“总数”:0
},
“费用节约”:{
“名称”:“费用和保护”,
“标签”:“保护费用”,
“类型”:“其他”,
“总数”:0
}
}
for(jsonData中的var键){
如果(“费用”==jsonData[键][“类型”]){
log(jsonData[key][“label”]);
}
}
尝试
Array.filter()
方法根据
type=“expense”
过滤数据

var obj={
“费用和货物”:{
“标签”:“费用和货物”,
“名称”:“费用货物”,
“总计”:0,
“类型”:“收入”
},
“汽车费用”:{
“标签”:“汽车费用”,
“名称”:“费用车”,
“总计”:0,
“类型”:“费用”
},
“兽医费用”:{
“标签”:“费用”,
“名称”:“费用兽医”,
“总计”:0,
“类型”:“收入”
}
};
var res=Object.keys(obj).filter(item=>{return obj[item].type=='expense'});
for(在res中的var i){
document.getElementById(“结果”).innerHTML=obj[res[i]].label;
}

尝试
Array.filter()
方法根据
type=“expense”
过滤数据

var obj={
“费用和货物”:{
“标签”:“费用和货物”,
“名称”:“费用货物”,
“总计”:0,
“类型”:“收入”
},
“汽车费用”:{
“标签”:“汽车费用”,
“名称”:“费用车”,
“总计”:0,
“类型”:“费用”
},
“兽医费用”:{
“标签”:“费用”,
“名称”:“费用兽医”,
“总计”:0,
“类型”:“收入”
}
};
var res=Object.keys(obj).filter(item=>{return obj[item].type=='expense'});
for(在res中的var i){
document.getElementById(“结果”).innerHTML=obj[res[i]].label;
}

JSON.parse($ctrl.go)