【问题标题】:Using array map to concatenate letters in a string array使用数组映射连接字符串数组中的字母
【发布时间】:2016-09-13 09:39:11
【问题描述】:

我有一个函数 getChar,它接受 1 个参数 - 一个单词数组。我想连接 nth 单词中的 nth 字母并将它们作为字符串返回。例如:getChar(["javascript", "is cool", "123"]) 应该返回值js3。

怎么了?

function getChar(arr)
{
    return arr.mao(function(v,i,a){
        return v[i];
    }).join(" ");
}

【问题讨论】:

  • 是的,怎么了?你没有告诉我们你为什么认为这是错误的。

标签: javascript arrays string helpers


【解决方案1】:

您的一般算法是正确的。只是一些错别字。

如果您还不知道,这确实是您的代码:

  • 您的代码使用mao 而不是map
  • 从您的示例测试用例中,您希望干净地连接字符,而不是用空格粘合它们。你应该改用"" 加入。

以下代码是从 Google Chrome F12 测试的:

function getChar(arr){
  return arr.map(function(v,i,a){
    return v[i];
  }).join("");
}
console.log(getChar(["javascript", "iscool", "123"]));

< js3

【讨论】:

    【解决方案2】:

    为什么不直接遍历数组呢?

    function getChar(arr) {
        var string = "";
        for (var i = 0; i < arr.length; i++) {
            string += arr[i][i]
        }
    
        return string;
    }
    

    【讨论】:

    • 警告:如果第 6 个单词只有 5 个字母,它将在字符串中返回一个 undefined,如“itdoesntwundefinedorks”
    【解决方案3】:
    function getChar(arrayOfWords){
      var buffer = '';
      var result = '';
      for(var i = 0; i < arrayOfWords.length; i++){
        buffer = arrayOfWords[i].split('');
        if(buffer[i]){
          result += buffer[i];
        }
      }
      return result;
    }
    
    var arrayOfWords = ['JavaScript', 'React', 'Angular', 'JQuery', 'Ember', 'Node'];
    
    var result = getChar(arrayOfWords);
    
    console.log(result);
    // It shows "Jeger"
    
    1. 将字符串(单词)数组作为 getChar 函数的参数传递。
    2. 对于数组中的每个单词,捕获第 n 个字符。
    3. 推入结果字符串(可以使用 += 或 .join())。
    4. 返回结果字符串。

    编辑:关于选择的第 n 个字母的小修复

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 2012-01-23
      • 2017-01-31
      • 1970-01-01
      • 2014-10-31
      • 2019-02-23
      • 2013-06-15
      • 2020-12-12
      • 1970-01-01
      相关资源
      最近更新 更多