[英]Find the nth character from an array of words in JavaScript
我想创建一个带有1个参数的函数(nthChar)-n个单词的数组。
该函数应连接每个单词的第n个字母以构造一个新单词,该单词应作为字符串返回。
第n个字母应该是数组中第一个单词的第一个字母,第二个单词是数组中第二个单词的字母,第三个字母是第三个字母,依此类推。 因此:nthChar(['I','am','Tom'])应该返回'Imm'
这是我的尝试:函数nthChar(words){
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和更早版本中可以使用...
并且,就其地狱而言,ES6中的void
答案是void
的
var nthChar = arr => arr.map((i, v) => i[v]).join('');
function nthChar(arr){
return arr.map(function(i, v){
return i[v];
}).join("");
}
console.log(nthChar(['I','am','Tom']));
因此,它将返回所需字符的数组,然后将其加入。 说得通?
代码的问题是您没有将任何内容串联到输出中。 您可以像对待array
一样访问string
的字符。
您的代码可以是:
function nthChar(words){
var str = "";
for (var i=0; i<words.length; i++) {
str += words[i].charAt(i);
}
return str;
}
试试这个
function nthChar(words){
var result = "";
for (var i = 0, ln = words.length; i<ln; i++)
result += words[i].charAt(i);
return result;
}
这可以很简单
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
数组时,该变量已经在增加。 当然,在整个循环运行之后也要返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.