簡體   English   中英

從JavaScript中的單詞數組中查找第n個字符

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM