如何使用JavaScript在条件下从数组中删除项
我有一个数组,如下所述。我想使用JavaScript从数组中删除一个属性值为空的项 实际数组:如何使用JavaScript在条件下从数组中删除项,javascript,object,Javascript,Object,我有一个数组,如下所述。我想使用JavaScript从数组中删除一个属性值为空的项 实际数组: [ { "href":"/client", "methods":[] }, { "href":"/home", "methods": { "type1":"GET", "type2":"POST", }
[
{
"href":"/client",
"methods":[]
},
{
"href":"/home",
"methods":
{
"type1":"GET",
"type2":"POST",
}
},
{
"href":"/about",
"methods":[]
},
{
"href":"/contact",
"methods":
{
"type1":"GET",
"type2":"POST",
}
}
]
[
{
"href":"/home",
"methods":
{
"type1":"GET",
"type2":"POST",
}
},
{
"href":"/contact",
"methods":
{
"type1":"GET",
"type2":"POST",
}
}
]
预期结果:
[
{
"href":"/client",
"methods":[]
},
{
"href":"/home",
"methods":
{
"type1":"GET",
"type2":"POST",
}
},
{
"href":"/about",
"methods":[]
},
{
"href":"/contact",
"methods":
{
"type1":"GET",
"type2":"POST",
}
}
]
[
{
"href":"/home",
"methods":
{
"type1":"GET",
"type2":"POST",
}
},
{
"href":"/contact",
"methods":
{
"type1":"GET",
"type2":"POST",
}
}
]
迭代对象数组并基于
方法
属性长度进行过滤
var obj = [...];
obj = obj.filter((val) => val.methods && val.methods.length !== 0);
迭代对象数组并基于
方法
属性长度进行过滤
var obj = [...];
obj = obj.filter((val) => val.methods && val.methods.length !== 0);
输入var json={}
var key=“giveitakeyvalue”
json[key]=null
删除json[key] 输入var json={}
var key=“giveitakeyvalue”
json[key]=null
删除json[key] 这是我的工作。但是,筛选器不会修改现有数组,因此需要将其分配给其他数组/覆盖当前变量
a = a.filter(item => Object.keys(item.methods).length > 0)
这是我的工作。但是,筛选器不会修改现有数组,因此需要将其分配给其他数组/覆盖当前变量
a = a.filter(item => Object.keys(item.methods).length > 0)
对于方法,您可以轻松地遍历对象,然后对值为空的键调用delete。。。。或空数组。我扩展了答案,不仅涵盖了数组为空的方法的键,还涵盖了我定义为空内容的所有键
var l = [];
for (var i = 0; i < l.length; i++){
var keys = Object.keys(l[i]);
for ( var j = 0; j < keys.length; j++){
var value = keys[j];
// In your use case, you are only doing arrays so i coded it as such.
if (value.length == 0){
delete l[i][j];
}
}
}
并应用该值,而不是值。length==0
if (isValueDeletable(value)){ delete l[i][j]; }
然后修改l以删除所有具有空值的键。对于方法,您可以轻松遍历对象,然后对具有空值的键调用delete。。。。或空数组。我扩展了答案,不仅涵盖了数组为空的方法的键,还涵盖了我定义为空内容的所有键
var l = [];
for (var i = 0; i < l.length; i++){
var keys = Object.keys(l[i]);
for ( var j = 0; j < keys.length; j++){
var value = keys[j];
// In your use case, you are only doing arrays so i coded it as such.
if (value.length == 0){
delete l[i][j];
}
}
}
并应用该值,而不是值。length==0
if (isValueDeletable(value)){ delete l[i][j]; }
然后修改l以删除所有具有空值的键。因此,当
方法
是空数组时删除它?这是一个对象数组,而不是对象。因此,当方法
是一个空数组时删除它?这是一个对象数组,而不是对象。由于箭头函数,上述语法在IE中不起作用。你能帮我解决IE中的这个问题吗?如果你点击上面的过滤器链接,你会看到一个非常简单的例子,说明如何将它用于传统的函数调用。您只需要用传统的函数语法替换箭头函数。函数(item){return Object.keys(item.methods).length>0;}由于arrow函数,上述语法在IE中不起作用。你能帮我解决IE中的这个问题吗?如果你点击上面的过滤器链接,你会看到一个非常简单的例子,说明如何将它用于传统的函数调用。您只需要用传统的函数语法替换箭头函数。函数(项){返回对象.键(项.方法).length>0;}