从JavaScript中的单词数组中查找第n个字符
Find the nth character from an array of words in JavaScript
我想创建一个函数(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;
}
相关文章:
- 使用RegExp查找url中的字符
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- javascript:查找/替换regexp帮助-粗体、斜体和特定字符
- Regex查找前面没有特定字符的字符
- 在Javascript中查找子字符串,并前置/附加一些字符
- 使用正则表达式查找字符串中的不匹配字符
- 使用正则表达式查找字符模式
- 使用正则表达式在方括号内查找多个字符
- 使用for循环查找字符串中的特定字符
- javascript查找字符串并删除以下所有字符
- 使用javascript查找小数前的整数(不包括特殊字符)
- Java Script Regex-查找脚本中是否只有允许的字符
- 查找字符&用Javascript制作Capitlise
- 在动态创建的输入上查找字符
- 在某个索引之后查找字符的索引
- 在数组中查找字符并将其替换为新值
- 查找字符后的第一个字符串
- 从字符串后面的字符串中查找字符
- 扫描数组列表以查找字符并返回包含该字符的所有数组的函数
- Javascript 正则表达式查找字符并使用 span 动态换行文本