在Javascript中删除数组中的空元素
如何在JavaScript中删除数组中的空元素?
是否有一个直接的方法,或者我需要循环浏览并手动删除它们?
987
3
如何在JavaScript中删除数组中的空元素?
是否有一个直接的方法,或者我需要循环浏览并手动删除它们?
编辑:这个问题几乎是在九年前回答的,当时
Array.prototype
中还没有很多有用的内置方法。现在,当然,我建议你使用
filter
方法。请记住,这个方法将返回一个新的数组,其中的元素将通过你提供给它的回调函数的标准。
例如,如果你想删除 "空 "或 "未定义 "的值。
这取决于你认为什么是"空",例如,如果你处理的是字符串,上述函数就不会删除属于空字符串的元素。
我看到经常使用的一个典型模式是删除_falsy_的元素,包括空字符串
""
、0
、NaN
、null
、undefined
和false
。你可以传递给
filter
方法,Boolean
构造函数,或者在过滤条件函数中返回相同的元素,例如。或者
在这两种情况下,这都是可行的,因为在第一种情况下,
filter'方法作为一个函数调用
Boolean'构造函数,转换数值,而在第二种情况下,filter'方法在内部将回调的返回值隐含地变成
Boolean'。如果你正在处理稀疏数组,并试图摆脱"洞",你可以使用
filter
方法传递一个返回true的回调,例如。旧答案:不要这样做!
我使用这种方法,扩展本地数组原型。
或者你可以简单地将现有的元素推入其他数组。
你可能会发现在你的数组上进行循环,并从你想保留的数组中建立一个新的数组,要比按照建议进行循环和拼接更容易,因为在循环过程中修改数组的长度会带来问题。
你可以这样做。
实际上,这里有一个更通用的解决方案。
你会明白的--然后你可以有其他类型的过滤功能。可能比你需要的要多,但我觉得很慷慨...;)
试试这个。 把你的数组传给它,它就会在返回时删除空元素。 *为了解决Jason指出的问题,已经更新了。