删除值为“”的数组元素

时间:2014-05-31 14:28:50

标签: javascript arrays

我有这个数组:

var x = ["happy", "", "sad", ""];

如何将其转换为:

["happy","sad"];

<小时/> 同样,我如何转换此数组:

var y = ["happy", ""];

为:

["happy"];


感谢您的帮助。

3 个答案:

答案 0 :(得分:15)

像这样:

var x = ["happy", "", "sad", ""];
x = x.filter(function(v){
    return v !== "";
});

您也可以执行return v;,但这也会过滤掉falsenull0NaN或任何 falsy 除了""

以上内容会过滤掉您阵列中的所有"",只会留下"happy""sad"

更新: String方法返回在其String表示形式中传递给它的参数。因此,它会为""返回"",这是 falsey 。所以你可以做到

x = x.filter(String);

答案 1 :(得分:3)

使用Array.prototype.filter

array = array.filter(function (elem) { return elem; });

如果您不想过滤elem !== ""false等,也可以null

答案 2 :(得分:0)

对于您的阵列,您可以使用简单的:

x = x.filter(Boolean);

这也会过滤nullundefinedfalse0