2016-06-16 4 views
0

Ich habe versucht, eine erforderliche Lösung zu suchen und zu helfen, aber wirklich konnte nicht etwas zu schreiben finden. Ich brauche diese JavaScript-Funktion, um Folgendes zu tun.Javascript-Funktion, um Zeilen in Spalten zu konvertieren

Ich habe die folgenden Zeilen.

AAAAAAA 
BBBBBBB 
CCCCCCC 
DDDDDDD 

Und ich muss die oben genannten Daten in Spalten konvertieren, so dass die Ausgabe so wäre.

ABCD 
ABCD 
ABCD 
ABCD 
ABCD 
ABCD 
ABCD 

Das bedeutet, dass die Zeilen in Spalten konvertiert werden.

Jeder kann mit einer JavaScript oder jQuery Funktion helfen, um die Ergebnisse zu erhalten?

+2

In welchem ​​Format ist das? Sind das 4 separate Arrays? Werden sie in 4 verschiedenen Zeilen einer HTML-Tabelle ausgedruckt? – mwilson

+0

ist dieses Array oder String? –

+0

Dies ist eine Testfrage tatsächlich für eine Aufgabe gegeben. Siehe die eigentliche Funktionsfrage hier. http://pastebin.com/kEGBzJzV - siehe # 1. Text Blockierung Abschnitt. –

Antwort

3

Sie können etwas tun mit Array#forEach Methode

var data = `AAAAAAA 
 
BBBBBBB 
 
CCCCCCC 
 
DDDDDDD`; 
 

 
var res = []; 
 

 
data.split('\n').forEach(function(v) { 
 
    v.split('').forEach(function(v1, i) { 
 
    res[i] = (res[i] || '') + v1; 
 
    }) 
 
}); 
 

 
console.log(res.join('\n'));


Wenn sowohl Eingang und Ausgang in Array-Format sind, dann können Sie die String#split und vermeiden Array#join metho ds

var data = [ 
 
    'AAAAAAA', 
 
    'BBBBBBB', 
 
    'CCCCCCC', 
 
    'DDDDDDD' 
 
] 
 

 
var res = []; 
 

 
data.forEach(function(v) { 
 
    v.split('').forEach(function(v1, i) { 
 
    res[i] = (res[i] || '') + v1; 
 
    }) 
 
}); 
 

 
console.log(res);

+0

Das funktioniert! Vielen Dank –

+0

Laut der Anforderung, Ihre Datenvar ist eine Zeichenfolge. Es muss ein Array sein. – mwilson

+0

@mwilson: aktualisiert –

1

Es ist als diese bessere Lösungen sein kann, versuchen Sie dies:

var data = ["AAAAAAA", 
      "BBBBBBB", 
      "CCCCCCC", 
      "DDDDDDD"]; 

var output = []; 
data.map(function(a){ 
    for(var i=0; i<a.length;i++){ 
      if(!output[i]) 
       output[i] = ""; 
     output[i] += a[i]; 
    } 
}); 
console.log(output); 
0

pro die Anforderung in der Frage, das wird es tun:

var arr = ["AAA", "BBB", "CCC"]; 
var result = ['', '', '']; 
for (var i = 0; i < arr.length; i++) { 
    var str = arr[i].split(''); 
    for (var j = 0; j < str.length; j++) { 
     result[j] += str[j]; 
    } 
} 
    console.log(result); 
0

var data = ["AAAAAAA", 
 
\t \t \t "BBBBBBB", 
 
\t \t \t "CCCCCCC", 
 
\t \t \t "DDDDDDD"]; 
 

 
var mapedData = data[0].split('').map(function (string, i) { 
 
\t return data.map(function(string1, i1) { 
 
\t \t return string1.charAt(i); 
 
\t }).join(''); 
 
}); 
 

 
console.log('required data ---', mapedData);

Verwandte Themen