我试图搜索所需的解决方案和帮助,但实际上找不到要写的东西。我需要这个JavaScript函数来执行以下操作。
我有以下几行。
AAAAAAA
BBBBBBB
CCCCCCC
DDDDDDD
我需要将上面的数据转换成列,所以输出就像这样。
ABCD
ABCD
ABCD
ABCD
ABCD
ABCD
ABCD
这意味着行将被转换为列。
任何人都可以使用JavaScript或jQuery函数来获得结果吗?
答案 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)
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;