我有一个返回json对象的进程:
data={key1:[], key2:[], key3:[{key1:"a"}, {key2:"b"}], key4:[{key1:"c"}, {key2:"d"}]}
我想知道是否有一种简单的方法来过滤这个json对象,以删除值为空数组的属性。
一旦过滤,我就可以遍历剩余的属性并对数组元素进行操作。
答案 0 :(得分:0)
我更愿意创建一个省略空数组的新对象,而不是从现有对象中删除。
________
答案 1 :(得分:0)
使用lodash
应该会非常简单:
var filtered = _.omitBy(data, function(value) {
return Array.isArray(value) && value.length == 0;
});
现在,您可以遍历已过滤对象中的其余元素,以对其进行进一步操作。
答案 2 :(得分:0)
首先,我们必须遍历对象中的属性。
if (data[prop].length == 0) {
delete data[prop]
}
然后,这是一个过滤掉空数组属性的简单检查
for (var prop in data) {
if (data.hasOwnProperty(prop)) {
if (data[prop].length == 0) {
delete data[prop]
}
}
}
完整的解决方案,
$row=array(
'downloadvideo' => '=HYPERLINK("'.$this->linkVideo.'";"Download")',
);
$listFeed->insert($row);
答案 3 :(得分:0)
试试这个有用的演示:
var data = {
key1:[],
key2:[],
key3:[
{key1:"a"},
{key2:"b"}
],
key4:[
{key1:"c"},
{key2:"d"}
]
};
for (var i in data) {
if (data[i].length == 0) {
delete data[i]
}
}
console.log(data);