我是节点JavaScript的新手,并且不太了解语法。我的代码
console.log(index+ "\t" + output[index]);
在我的数组中输出空字符串。
所以我创建了一个新方法
var array = removingEmptyString(output[index]);
function removingEmptyString(array)
{
var newArray = [];
for(var i in array)
{
if(i != "" || i != null || i != " ")
{
newArray[i] = i;
}
}
}
我不明白的是我是否宣布我的阵列正确?另外,如果我正确地将数组传递给removeEmptyString,如果声明新数组并将非空字符串插入该数组中也是正确的吗?
答案 0 :(得分:1)
一个问题是数组和对象略有不同。要遍历数组,您可以使用以下内容:
for (var i=0; i<arr.length; i++) {
/* code */
}
arr.forEach(function(item, index, arr) {
/* code */
});
for..in结构用于迭代Object中的键:
var obj = { b : 1, c:2 }
for (var key in obj) {
console.log(key) // will output first b then c
}
删除数组中空值的最简单方法是:
var arr = [ 1, '', null, 3, 0, undefined, '', 4 ];
var filtered = arr.filter(function(item){ return item != null && item !== ''; });
console.log(filtered) // [1,3,0,4]
显然,您可以通过更改传递给filter
的函数来添加应该从原始数组中过滤掉的更多内容。
答案 1 :(得分:0)
使用filter
方法的简单方法。
var newArray = oldArray.filter(function(v){return v!==''});