我在从数组中删除空元素或未定义元素时遇到问题。我试过这个:
function clean(item) {
for (var i = 0; i < item.length; i++) {
if (item[i] === undefined || item[i] == "") {
item.splice(i, 1);
i--;
}
}
return item;
};
我没有任何结果。
这是我的数组的例子:
答案 0 :(得分:0)
这是我过去写的一个有用的片段。
Array.prototype.empty = function() {
for (var i = 0, s = this.length; i < s; i++) { this.pop(); }
return this;
};
Array.prototype.removeAll = function(item) {
var result = [];
for (var i = 0, j = 0, s = this.length; i < s; i++) {
if (this[i] != item) { result[j++] = this[i]; }
}
this.empty();
for (var i = 0, s = result.length; i < s;) { this.push(result[i++]); }
};
&#13;
当然它可能不是世界上最好的解决方案,但它可以工作,再加上这个功能,您可以随时使用它从阵列中删除其他字符/特定元素。就我个人而言,我也更喜欢使用它的语法,但这仅仅是我,我个人认为编写类似的东西更简洁:
arrayVar.removeAll("");
而不是更像:
arrayVar = clean(ArrayVar);
我所知道的是这个解决方案有效。
答案 1 :(得分:0)
您可以将数组传输到临时数组,而不添加空的或未定义的数组
function clean(item) {
var tempArr = [];
for (var i = 0; i < item.length; i++) {
if (item[i] !== undefined && item[i] != "") {
tempArr.push(item[i]);
}
}
return tempArr;
}
答案 2 :(得分:0)
arr = arr.filter((entry) => { return entry.trim() != '' })