[英]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.