So che questa è una vecchia questione, ma per coloro indagando il web come me, ecco un'altra soluzione:
Usa replace()
sulla virgole e creare un set di caratteri per determinare la fine di una riga . Ho appena aggiunto --
alla fine degli array interni. In questo modo non è necessario eseguire una funzione for
.
Ecco un JSFiddle: https://jsfiddle.net/0rpb22pt/2/
In primo luogo, è necessario ottenere un tavolo all'interno del vostro HTML e dargli un id:
<table id="thisTable"><tr><td>Click me</td></tr></table>
Ecco l'array modificato per questo metodo:
thisArray=[["row 1, cell 1__", "row 2, cell 2--"], ["row 2, cell 1__", "row 2, cell 2"]];
Si noti l'aggiunta --
alla fine di ogni matrice.
Perché hai anche le virgole all'interno di array, è necessario differenziare in qualche modo in modo da non finire per rovinare il tuo tavolo- aggiungendo __
dopo che le cellule (oltre l'ultima fila) funziona. Se non avevi virgole nella tua cella, questo passaggio non sarebbe comunque necessario.
Ora qui è la vostra funzione:
function tryit(){
document
.getElementById("thisTable")
.innerHTML="<tr><td>"+String(thisArray)
.replace(/--,/g,"</td></tr><tr><td>")
.replace(/__,/g,"</td><td>");
}
Funziona così:
- Chiamate il vostro tavolo e arrivare a impostare il
innerHTML
. document.getElementById("thisTable").innerHTML
- Inizia aggiungendo tag HTML per avviare una riga e dati.
"<tr><td>"
- Aggiungi
thisArray
come String()
. +String(thisArray)
- Sostituisci ogni
--
che finisce prima di una nuova riga con la chiusura e l'apertura di dati e righe..replace(/--,/g,"</td></tr><tr><td>")
- Altre virgole indicano i dati separati all'interno delle righe. Quindi sostituire tutte le virgole la chiusura e l'apertura dei dati. In questo caso non tutte le virgole sono tra le righe perché le celle hanno virgole, quindi abbiamo dovuto differenziare quelle con
__
: .replace(/__,/g,"</td><td>")
. Normalmente devi semplicemente fare .replace(/,/g,"</td><td>")
.
Finché non vi dispiace aggiungere alcuni caratteri vaganti nel vostro array, richiede molto meno codice ed è semplice da implementare.
Sono sorpreso che nessun altro ha fatto questa domanda prima. Ho pensato che sarebbe stato qualcosa di cui la maggior parte degli sviluppatori web avrebbe avuto bisogno. –
Quindi aspettate che abbiate posto una domanda, postato un commento, poi inviato una risposta alla vostra stessa domanda in un intervallo di 6 minuti? Perché hai bisogno di Stack Overflow, puoi farlo con un documento di testo. – VoronoiPotato
@VoronoiPotato Ho inviato una risposta alla mia domanda in modo che la risposta sarebbe stata utile ad altri sviluppatori web - questo è lo scopo di Stack Overflow. C'è anche un pulsante "rispondi alla tua domanda" che viene mostrato quando si pubblica una domanda sulla rete di scambio dello stack. –