Javascript 打印每个单词的第一个字母,然后打印第二个字母,然后打印第三个字母,以此类推

Javascript 打印每个单词的第一个字母,然后打印第二个字母,然后打印第三个字母,以此类推,javascript,Javascript,很抱歉,我对javascript相当陌生 我当前的输出,来自用户输入的“多么美好的一天”: what abea utif ulda y 如何获取每个单词的第一个字母以获得如下输出: wauuy hbtl aeid tafa 我试过这个: var output = ''; var counter = 0; var newStr2 = newStr.split('\n'); for (let i = 0; i < newStr2.length; i++) { output =

很抱歉,我对javascript相当陌生

我当前的输出,来自用户输入的“多么美好的一天”:

what
abea
utif
ulda
y
如何获取每个单词的第一个字母以获得如下输出:

wauuy hbtl aeid tafa
我试过这个:

var output = '';
var counter = 0;
var newStr2 = newStr.split('\n');

  for (let i = 0; i < newStr2.length; i++) {
    output = output + newStr2[counter].substr(0,1)
    counter++
  }
var输出=”;
var计数器=0;
var newStr2=newStr.split('\n');
for(设i=0;i
有没有办法读取行和列?这样我就可以先取每行的第一个字母,然后再取每列的第一个字母


谢谢。

使用正则表达式将输入的每四个字符(无空格)拆分为一个数组,然后使用
reduce
将它们组合在一起:

函数转换(输入){
const wordCount=input.split(“”).length;
const chunked=input.replace(//g',)
.match(新的RegExp('\\w{1',+wordCount+'}',g');
const output=chunked.reduce((累计,chunkWord)=>{
[…chunkWord].forEach((char,i)=>(
累计[i]=(累计[i]| |“)+char
));
返回累计;
}, {});
返回输出;
}
console.log(transform(“多么美好的一天”);
log(转换('foo-foo-bar');

log(transform('fooo-bar-baz'))您可以使用两个for循环来实现。单词中的每个字母一个,数组中的每个元素一个(单词数)

var newStr=`什么
阿贝亚
utif
乌尔达
y`
var输出=“”;
var newStr2=newStr.split('\n');
对于(var j=0;j控制台日志(输出)什么决定输出中的字数?输入的字数?@CertainPerformance是。它基本上是每列中每行的第一个字母,这很完美。谢谢虽然你能解释一下
if(newStr2[i][j]){output=output+newStr2[i][j];}
不太确定那里发生了什么。@itstman我用解释更新了答案,因为在评论中解释太长了。