2013-03-21 109 views
0

如果我有一個JavaScript數組:創建從規則排列一個新的二維數組

a = ["12", "34", "56", "78"]; 

,我想做出一個新的二維數組是這樣的:

b = [ ["12345678"], ["34567812"], ["56781234"], ["78123456"] ]; 

我知道這應該是相當簡單,但我無法弄清楚...今天我的大腦有點緩慢......:/

回答

5

在不同的樞軸位置加入字符串。

n = []; 
for(i = 0; i < a.length; i++){ 
    n.push(a.slice(i).join("") + a.slice(0,i).join("")); 
} 

此輸出:

[ "12345678", "34567812", "56781234", "78123456" ] 

我不能肯定是否已經嵌套在輸出單個元件陣列是個錯誤,但如果所需只需添加內部push方括號中。

1

您可以結合使用mapconcat這樣的:

var newA = a.map(function() { 
    var copy = a.slice(); 
    return [copy.concat(copy.splice(0, arguments[1])).join('')]; 
}); 

// => [ ["12345678"], ["34567812"], ["56781234"], ["78123456"] ];