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

Find the nth character from an array of words in JavaScript

本文关键字:查找 字符 数组 JavaScript 单词      更新时间:2023-09-26

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

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

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

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

for (var i=0; i<words.length; i++) {
return words[i].charAt(words.indexOf(words[i]))
}
}

它似乎只抓住了第一个单词的第一个字母。在连接之前,我将如何处理数组的其他单词?

只需对代码进行最小的更改,就可以完成

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

str-用于建立结果字符串

words[i]选择第i个单词。。。该语句中的第二个[i]选择单词中的第i个字母

例如:"Hello World"[6]W

奖金:适用于IE8及更早版本。。。


而且,更糟糕的是,void在ES6 中的回答

var nthChar = arr => arr.map((i, v) => i[v]).join('');

这可以像一样简单

function nthChar(words){
    var s = "";
    for(var i=0;i<words.length;i++){
      s+= words[i].charAt(i);
    }
    return s;
}

现场示例:http://jsfiddle.net/11yc79jn/

这最接近于您的原始解决方案,并且只使用循环控制变量i,当您循环通过words数组时,该变量已经在递增。当然,也可以在整个循环运行后返回。

function nthChar(arr){
  return arr.map(function(i, v){
      return i[v];
  }).join("");
}
console.log(nthChar(['I','am','Tom']));

所以它返回了一个你们想要的字符数组,然后加入它。这有道理吗?

代码的问题在于没有将任何内容连接到输出。您可以访问string的字符,就好像它是array一样。

Live Fiddle

您的代码可以是:

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

Fiddle

试试这样的

function nthChar(words){
  var result = "";
  for (var i = 0, ln = words.length; i<ln; i++) 
    result += words[i].charAt(i);
  return result;
}