【发布时间】:2018-10-15 01:10:26
【问题描述】:
您好,我有一个嵌套的 JSON,我想过滤空数量值的数据
这是原始 JSON -
var unfilteredJSON = {
"payload":{
"oldKeys":[
"125262"
],
"keyData":[
{
"key":"123456",
"products":[
{
"prodId":"H1",
"qty":"1"
},
{
"prodId":"H2",
"qty":""
}
],
"rushFee":"true"
},
{
"key":"234234",
"products":[
{
"prodId":"H1",
"qty":"1"
},
{
"prodId":"H2",
"qty":""
}
],
"rushFee":"false"
}
],
"submit":"false"
}
}
qty 键在对象中可以有空值。我想使用 jQuery 方法过滤数据并删除带有空白数量的对象,以便 JSON 看起来像这样 -
{
"payload":{
"oldKeys":[
"125262"
],
"keyData":[
{
"key":"123456",
"products":[
{
"prodId":"H1",
"qty":"1"
},
],
"rushFee":"true"
},
{
"key":"234234",
"products":[
{
"prodId":"H1",
"qty":"1"
},
],
"rushFee":"false"
}
],
"submit":"false"
}
}
所以,我使用了过滤器方法,它给了我上述结果,效果很好-
var unfilteredJSON = {"payload":{"oldKeys":["125262"],"keyData":
[{"key":"123456","products":[{"prodId":"H1","qty":"1"},
{"prodId":"H2","qty":""}],"rushFee":"true"},{"key":"234234","products":
[{"prodId":"H1","qty":"1"},
{"prodId":"H2","qty":""}],"rushFee":"false"}],"submit":"false"}};
unfilteredJSON.payload.keyData.forEach(e =>
e.products = e.products.filter(p => p.qty)
);
console.log(unfilteredJSON);
但由于这一行,它给了我 Internet Explorer 中的语法错误 -
unfilteredJSON.payload.keyData.forEach(e =>
e.products = e.products.filter(p => p.qty)
);
我需要一种解决方法或一种不同的方法来使其在所有浏览器中都能正常工作。请帮忙。
【问题讨论】: