我有以下数组,我只想删除名称为空的条目,例如第一个和第三个对象,我该如何有效地做到这一点?

var myopj =[
    { "Name": "", "Value": "" }
    { "Name": "aaa", "Value": "bbb" },
    { "Name": "", "Value": "" }
];


我在SO中看到了一些示例,但就我而言,它有点复杂,我需要删除值为""的名称

arr.splice( arr.indexOf( "name" ), 1 );

最佳答案

这应该工作:

myopj = myopj.filter(function(o){return o.Name});


严格地说,这将创建一个新数组并将其分配给您的myopj变量,而不是从旧数组中删除项目,但这可能是实现所需功能的最简单方法。

如果您的数组很大,并且确实要删除项目,则需要使用for循环并使用splice切掉不需要的内容,但是我认为使用filter更好。

07-24 09:50
查看更多