2016-06-16 71 views
0

我試圖搜索所需的解決方案並提供幫助,但實際上找不到要寫入的內容。我需要這個JavaScript函數來完成以下工作。將行轉換爲列的javascript函數

我有以下幾行。

AAAAAAA 
BBBBBBB 
CCCCCCC 
DDDDDDD 

而我需要將上述數據轉換爲列,所以輸出將是這樣的。

ABCD 
ABCD 
ABCD 
ABCD 
ABCD 
ABCD 
ABCD 

這意味着行將被轉換爲列。

任何人都可以用JavaScript或jQuery函數來獲得結果嗎?

+2

這是什麼格式?他們是4個獨立的陣列嗎?他們打印出4個不同的html表格行嗎? – mwilson

+0

是這個數組還是字符串? –

+0

這是一個測試問題實際上是給定的任務。看到這裏的實際功能問題。 http://pastebin.com/kEGBzJzV - 見#1。文本阻止部分。 –

回答

3

可以使用Array#forEach方法

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'));


如果輸入和輸出都在陣列格式,那麼你可以避開String#split做這樣的事情Array#join方法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

工作正常!非常感謝你 –

+0

根據要求,你的data var是一個字符串。它需要是一個數組。 – mwilson

+0

@mwilson:更新 –

1

可能有比這更好的解決方案,試試這個:在問題

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

%的要求,這將做到這一點:

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);