javascript函数将行转换为列

时间:2016-06-16 05:49:54

标签: javascript jquery

我试图搜索所需的解决方案和帮助,但实际上找不到要写的东西。我需要这个JavaScript函数来执行以下操作。

我有以下几行。

AAAAAAA
BBBBBBB
CCCCCCC
DDDDDDD

我需要将上面的数据转换成列,所以输出就像这样。

ABCD
ABCD
ABCD
ABCD
ABCD
ABCD
ABCD

这意味着行将被转换为列。

任何人都可以使用JavaScript或jQuery函数来获得结果吗?

4 个答案:

答案 0 :(得分: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 方法



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




答案 1 :(得分:0)

可能有比这更好的解决方案,试试这个:

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

答案 2 :(得分: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);

答案 3 :(得分:0)

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

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

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