Ich lerne jQuery und kam auf das Problem der Speicherung von HTML-Tabellendaten zu einem 2D-Array. Anstatt verschachtelte Schleifen zu verwenden, suchte ich nach jQuery-Funktionen, die es mir ermöglichen würden, dasselbe zu tun. Ich fand this method, die die Arbeit zu erledigen scheint.Selektive Speicherung von Tabellendaten in 2D-Array
var tRows = $('tr').map(function() {
return [$(this).find('td').map(function() {
return $(this).text()
}).get()]
}).get()
console.log(tRows)
I'd like to know, how I can use a condition, in the given code, to check if the first
td
of atr
is empty or not (or some other condition in general) and thus not add that row to the final array.
EDIT:
die Kommentare und Gebäude auf this fiddle Lesen, ich habe jetzt
var tRows = $('tr').map(function() {
var arr = $(this).find('td').map(function() {
return $(this).text()
}).get();
if (arr[0].length) return[arr];
}).get()
Das funktioniert etwas, aber ich hatte gehofft, dass die Bedingung in der inneren Karte überprüfen und gibt einen NULL-Wert anstelle des gesamten Arrays zurück. Von der discussion here scheint es, dass es nicht möglich ist, den inneren Kartenaufruf in der Mitte abzubrechen, und es wird das gesamte Array zurückgeben. Scheint, dass Loops am Ende für diesen Job besser sein könnten, oder habe ich etwas verpasst?
'Karte()' Parameter nimmt, die Sie Index der aktuellen Element gibt, so dass Sie das und überprüfen Textlänge wie diese https verwenden können: // jsfiddle .net/Lg0wyt9u/1816/ –
@NenadVracar Oh, eigentlich wollte ich nicht die gesamte Zeile, sondern das Array zum 2d Array hinzufügen, anstatt der Zelle. Aber ich werde versuchen, auf die Geige zu bauen, um das zu erreichen. –
'return return $ (this) .text() || undefined – Thomas