2013-03-21 60 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"] ];