问题
js如何筛选出arr里不是’’,null,undefined的元素并返回
代码
var arr = ['A', '', 'B', null, undefined, 'C', ' '];
var r = arr.filter(function (s) {
return s&& s.trim();
});
console.log(r) // ["A", "B", "C"]
1.filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
2 .js的判断条件中,0,‘’,undefined , null,NaN都视为false
所以,当 s&& s.trim() 为false时,当前数组的元素会被过滤掉。
3.trim() 方法用于删除字符串的头尾空格。
trim() 方法不会改变原始字符串。
IE9以下不支持trim()方法,需要使用正则表达式来实现:
function myTrim(x) {
return x.replace(/^\s+|\s+$/gm,'');
}
function myFunction() {
var str = myTrim(" Hello ");
alert(str); //Hello
}