使用underscore.js删除带有空字符串的嵌套数组

时间:2017-04-28 19:54:48

标签: javascript arrays underscore.js

我有一个数组数组。某些数组只包含一个空字符串。我想从父数组中删除所有这些内容。

[[ '*Order Number','*Line Number','*Item Number'],
[ '' ],
[ '018622','2','had-99']]

[[ '*Order Number','*Line Number','*Item Number'],
[ '018622','2','had-99']]

3 个答案:

答案 0 :(得分:3)

你可以使用内置的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 :(得分:0)

我可能会检查数组只有长度为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;
}}

答案 2 :(得分:0)

更好的方法是使用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);