使用map函数解码带有数字数组的字符串

时间:2016-03-26 16:03:39

标签: javascript arrays

我正在尝试编写一个解码函数,其中参数是一串字母(在本例中为字母)和一组数字。我想在数组上使用.map方法将编码消息作为字符串返回。这些数字是正整数。

在传入数组的情况下,该函数应返回字符串" beans"。

我无法弄清楚逻辑。这就是我所拥有的:

Route::put('shelter/article/update/{id}', ['as' => 'admin.shelter.article.update', 'uses' => 'ArticlesController@update']);

3 个答案:

答案 0 :(得分:3)

Array.prototype.reduce()的完美匹配:



function decoder(arr, indices){
  return indices.reduce(function(previousValue, currentValue){
    return previousValue + arr[currentValue];
  }, "");
}

alert(decoder("abcdefghijklmnopqrstuvwxyz", [1, 4, 0, 13, 18 ]));




答案 1 :(得分:2)

您可以映射code数组以获取每个位置的字符,然后加入它:

function decoder(key, code) {
    return code.map(function(c) {
        return key.charAt(c);
    }).join('');
}

console.log(decoder("abcdefghijklmnopqrstuvwxyz", [1, 4, 0, 13, 18 ]));

答案 2 :(得分:1)

其他人已经提供了更加可靠的解决方案,但您可以使用最初的想法来使用for循环。

function decoder(key, code) {
    var arr = key.split('');

    var result = "";

    for (var i = 0; i < code.length; i++) {
        result += arr[code[i]];
    }

    return result;
}

console.log(decoder("abcdefghijklmnopqrstuvwxyz", [1, 4, 0, 13, 18 ]));