从JavaScript中的单词数组中查找第n个字符

从JavaScript中的单词数组中查找第n个字符,javascript,arrays,string-concatenation,Javascript,Arrays,String Concatenation,我想创建一个函数(nthChar),它接受一个参数——一个由n个单词组成的数组 函数应该连接每个单词的第n个字母,以构造一个新词,该新词应该作为字符串返回 第n个字母应该是数组中第一个单词的第一个字母,第二个字母应该是数组中第二个单词的第二个字母,第三个字母应该是第三个单词的第三个字母,依此类推。因此: nthChar(['I','am','Tom'])应返回'Imm' 以下是我的尝试: 函数nthChar(字){ (变量i=0;i)的 所以它返回一个你们想要的字符数组,然后加入它。有意义吗 代

我想创建一个函数(nthChar),它接受一个参数——一个由n个单词组成的数组

函数应该连接每个单词的第n个字母,以构造一个新词,该新词应该作为字符串返回

第n个字母应该是数组中第一个单词的第一个字母,第二个字母应该是数组中第二个单词的第二个字母,第三个字母应该是第三个单词的第三个字母,依此类推。因此: nthChar(['I','am','Tom'])应返回'Imm'

以下是我的尝试: 函数nthChar(字){

(变量i=0;i)的

所以它返回一个你们想要的字符数组,然后加入它。有意义吗

代码的问题是没有将任何内容连接到输出。您可以像访问
数组一样访问
字符串的字符

您的代码可以是:

function nthChar(words){
    var str = "";
    for (var i=0; i<words.length; i++) {
       str += words[i].charAt(i);
    }
    return str;
}
函数nthChar(单词){
var str=“”;

对于(var i=0;i尝试这样的方法

function nthChar(words){
  var result = "";
  for (var i = 0, ln = words.length; i<ln; i++) 
    result += words[i].charAt(i);
  return result;
}
函数nthChar(单词){
var结果=”;

对于(var i=0,ln=words.length;i这可以简单到

function nthChar(words){
    var s = "";
    for(var i=0;i<words.length;i++){
      s+= words[i].charAt(i);
    }
    return s;
}
函数nthChar(单词){
var s=“”;

对于(var i=0;i,只需对代码进行最小的更改,就可以做到这一点

function nthChar(arr) {
    var str = '';
    for (var i=0; i<words.length; i++) {
        str = str + words[i][i];
    }
    return str;
}

提示:您的函数在返回之前没有连接任何内容。
return
语句终止函数的执行。您应该在循环后使用
return
关键字。每个字母都是
words[i]。charAt(i)
words[i][i]
no?发布答案的目的不应该只是提供一个解决方案。你应该解释为什么他当前的代码不能按预期工作。“有意义吗?”不是真的-你已经为完全不同的
map
更改了OPs
for
循环-一些解释会很好。你的代码可以是
str+=words[i]。charAt(words.indexOf(words[i])
…什么?不,它不可能…整个indexOf垃圾是愚蠢的…他的代码可以是
str+=words[i][i];
words.indexOf(words[i])
i
完全相同-也就是说,在数组中得到一个重复的单词,然后前者给出错误的索引之前,没有必要使用
indexOf
方法。完全冗余。为什么不使用
i
而不是
x
s+=words[i]。charAt(i)
@Tushar没有理由,除了时间还早,而且我显然还没有清醒到回答问题:)返回每个单词的最后一个字符,而不是问题所要求的字符so:nthChar(['I','am','Tom'])应该返回'Imm'-但他很生气地问你的函数意外地生成了预期的输出。请重新阅读这个问题。“第n个字母应该是数组中第一个单词的第一个字母,数组中第二个单词的第二个字母,第三个单词的第三个字母,依此类推。”哦,你说得对,我真的很抱歉。刚刚更新
function nthChar(words){
    var s = "";
    for(var i=0;i<words.length;i++){
      s+= words[i].charAt(i);
    }
    return s;
}
function nthChar(arr) {
    var str = '';
    for (var i=0; i<words.length; i++) {
        str = str + words[i][i];
    }
    return str;
}
var nthChar = arr => arr.map((i, v) => i[v]).join('');