2017-01-05 3 views
1

Ich habe resultantarray wie diese,Wie alle leeren Array innerhalb eines Arrays entfernen

[["apple","banana"],[],[],[],["kiwi"],[],[]] 

Wie kann ich all den leeren []array so entfernen, dass meine resultantarray würde wie folgt aussehen:

[["apple","banana"],["kiwi"]]; 


var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array 
+0

Verwendung Array.prototype.filter(). – Jai

+0

können Sie durch das Eltern-Array iterieren und die 'Splice()' -Funktion verwenden, die im Array-Prototyp bereitgestellt wird. –

+0

Mögliches Duplikat von [Wie kann ich leere Objekte aus einem Array in JS entfernen] (http://stackoverflow.com/questions/33884033/how-can-i-remove-empty-object-in-from-an-array -in-js) –

Antwort

8

Verwenden Sie Array.prototype.filter, um die leeren Arrays herauszufiltern - siehe folgende Demo:

var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array 
 

 
var result = array.filter(e => e.length); 
 
console.log(result);

In ES5, können Sie die Pfeil Funktion oben verwendet auslassen:

var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array 
 

 
var result = array.filter(function(e) { 
 
    return e.length; 
 
}); 
 
console.log(result);

+1

süß und kurz fragen! –

+1

Fügen Sie auch ES5-kompatiblen Code hinzu, um es zu vervollständigen – Satpal

+1

Schöne Lösung. Ich wünschte wirklich, dass mehr Leute mit dieser Syntax codieren würden - würde das ganze JavaScript-Debugging so viel einfacher machen (und schnellere Seitenladezeiten) –

2

Verwenden Array.prototype.filter() eine neue filtrierende zu erhalten Array:

var array = [["apple","banana"],[],[],[],["kiwi"],[],[]]; 
 
var newArr = array.filter(function(obj){ 
 
    return obj[0] !== undefined; 
 
}); 
 

 
console.log(JSON.stringify(newArr, 0, 0));

1

Der ES5 kompatiblen Code für @kukuz Antwort.

var array = [["apple","banana"],[],[],[],["kiwi"],[],[]];// sample array 
 

 
var result = array.filter(function(x){return x.length}); 
 
console.log(result);

+0

hat er schon gemacht. – Jai

+0

Entschuldigung! bemerkte @Jai nicht –

Verwandte Themen