从数组中移除空字符串的逻辑

3

我是一个初学者,对Node.js的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;
                }
        }

    }

我不明白的是,我是否正确声明了数组?同时,我是否正确地将数组传递给removingEmptyString函数?声明新数组并将非空字符串插入该数组是否正确?

2
你从未返回任何东西? i 将是键,而不是值。 - h2ooooooo
请查看此处:https://dev59.com/vnVC5IYBdhLWcg3weBA- - HasanAboShally
另外,在 JavaScript 中,数组并不是连续的。按照你的方式操作,你会得到空值的间隙。 - njzk2
2个回答

2

一个问题是数组和对象是稍微不同的东西。要遍历一个数组,你可以使用以下方法:

for (var i=0; i<arr.length; i++) {
  /* code */
}

arr.forEach(function(item, index, arr) {
  /* code */
});

for..in结构用于迭代对象中的键:

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函数的函数来添加更多需要从原始数组中过滤出的内容。

当出现 arr 时,我应该将 output[index] 或仅仅是 output 放入其中? - user2811419
你把你的数组放在那里。从外观上看,它是output[index],但我不能确定。 - Tibos
它没有起作用,我仍然得到了一个树的输出。 - user2811419
原始数组的内容是什么? - Tibos

0

或者使用 filter 方法的简单方法。

var newArray = oldArray.filter(function(v){return v!==''});

在这里,我应该把oldArray替换成output[index]还是只用output? - user2811419

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接