如何垂直打印数组中的字符串元素?

3

我有一个数组,想要竖向打印每个元素。 例如:

myArr = ['abc', 'def','ghi'];

输出应为:

a d g

b e h

c f i

我已经使用两个for循环在php中完成了这个任务,但是在JS中遇到麻烦。 有什么建议吗?


2
请发布你目前的JS代码并告诉我们你卡在哪里了。我们不会只为你写代码。 - Sammitch
console.log(myArr[0]);console.log(myArr[1]);console.log(myArr[2]); - Andrew
当你说“print”时,你是指在网页上显示还是写入控制台? - Mark
在文本区域中显示 - cskarche96
1
发布你的JavaScript代码,说明你已经做了什么,哪些地方出现问题以及它应该实现的功能是什么? - Nawed Khan
Related - ggorlen
7个回答

2
可能的解决方案是使用两个循环。然后,您只需将其放入某些文本区域或其他您喜欢的地方即可。

const myArr = ['abc', 'def','ghi'];
const r = myArr.map((elem, i) => elem.split('').map((_, a) => myArr[a][i]).join(' ')).join('\n');
console.log(r);


1
非常感谢!那解决了我的问题! :) - cskarche96

1
你可以使用 Array.from,它接受一个可迭代对象,在这种情况下将字符串拆分为单个字符,并使得可以使用映射函数进行进一步处理,这在此处是必要的以转置字符串。

var array = ['abc', 'def','ghi'],
    result = array
        .reduce((r, s, j) => Array.from(s, (c, i) => (r[i] || '') + c), [])
        .join('\n');

console.log(result);


0

我想出了像那样的东西:

myArr = ['abc', 'def','ghi'];

myArr.forEach((element)=>{
 console.log(element);
})


他想要按字符垂直打印。 - Josh
我猜你误读了问题。 - aadlani

0

你可以将它们作为单独的元素(如 ["a","b","c","d"...])存储在数组中,然后转置结果数组。


0

const ary = ['abc', 'def','ghi'];
for (i = 0; i < ary.length; i++) {
    const x = ary.map((ary) => ary[i]).join('')
    console.log(x)
}


0

你可以这样做

let myArr = ['abc', 'def','ghi'];
let op = new Array(myArr.length).fill('')

for(let i=0;i<myArr.length;i++){
  for(let j=0;j<myArr[i].length;j++){
    op[j] += myArr[i][j]+' ';
  }
}
let finalOp = op.reduce((op,cur)=>{
  return op+=cur+`\n`;
},'')
console.log(finalOp);


0

检查一下这个JS函数,它可以帮助你,你需要拆分数组元素中的每个单词:

function printArraySplitedLines(collection){
  collection.forEach(function(elementCollection) {
    let line = "";
    elementCollection.split('').forEach(function(item) {
        line += `${item} `;
    })
    console.log(line);
  });
}

printArraySplitedLines(myArr);

// a b c 
// d e f 
// g h i 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接