使用 underscore.js 删除带有空字符串的嵌套数组
Removing nested array with empty strings with underscore.js
我有一个数组。一些数组只包含一个空字符串。我想从父数组中删除所有这些。
之前
[[ '*Order Number','*Line Number','*Item Number'],
[ '' ],
[ '018622','2','had-99']]
之后
[[ '*Order Number','*Line Number','*Item Number'],
[ '018622','2','had-99']]
您可以使用内置的 Array#filter
。
var array = [[ '*Order Number','*Line Number','*Item Number'], [''], [ '018622','2','had-99']];
console.log(array.filter(function (a) { return a.toString(); }));
改变原始数组的版本。
var array = [[ '*Order Number','*Line Number','*Item Number'], [''], [ '018622','2','had-99']],
i = array.length;
while (i--) {
array[i].toString() || array.splice(i, 1);
}
console.log(array);
我可能会检查数组的长度是否只有 1 以及该项目是否为空字符串
var list = [[ '*Order Number','*Line Number','*Item Number'], [''], [ '018622','2','had-99']];
list.filter(function(arr){
if(arr.length === 1 && arr[0] === '') {
return false;
}
return true;
}}
更好的方法是使用 Array#splice
,它会从父数组中删除指定的元素。
var arr = [[ '*Order Number','*Line Number','*Item Number'], [''], [ '018622','2','had-99']];
for (var i = 0; i < arr.length; i++) {
if (arr[i][0] == '' && arr[i].length == 1) {
arr.splice(i, 1);
--i;
}
}
console.log(arr);
我有一个数组。一些数组只包含一个空字符串。我想从父数组中删除所有这些。
之前
[[ '*Order Number','*Line Number','*Item Number'],
[ '' ],
[ '018622','2','had-99']]
之后
[[ '*Order Number','*Line Number','*Item Number'],
[ '018622','2','had-99']]
您可以使用内置的 Array#filter
。
var array = [[ '*Order Number','*Line Number','*Item Number'], [''], [ '018622','2','had-99']];
console.log(array.filter(function (a) { return a.toString(); }));
改变原始数组的版本。
var array = [[ '*Order Number','*Line Number','*Item Number'], [''], [ '018622','2','had-99']],
i = array.length;
while (i--) {
array[i].toString() || array.splice(i, 1);
}
console.log(array);
我可能会检查数组的长度是否只有 1 以及该项目是否为空字符串
var list = [[ '*Order Number','*Line Number','*Item Number'], [''], [ '018622','2','had-99']];
list.filter(function(arr){
if(arr.length === 1 && arr[0] === '') {
return false;
}
return true;
}}
更好的方法是使用 Array#splice
,它会从父数组中删除指定的元素。
var arr = [[ '*Order Number','*Line Number','*Item Number'], [''], [ '018622','2','had-99']];
for (var i = 0; i < arr.length; i++) {
if (arr[i][0] == '' && arr[i].length == 1) {
arr.splice(i, 1);
--i;
}
}
console.log(arr);