我正在尝试编写一个解码函数,其中参数是一串字母(在本例中为字母)和一组数字。我想在数组上使用.map方法将编码消息作为字符串返回。这些数字是正整数。
在传入数组的情况下,该函数应返回字符串" beans"。
我无法弄清楚逻辑。这就是我所拥有的:
Route::put('shelter/article/update/{id}', ['as' => 'admin.shelter.article.update', 'uses' => 'ArticlesController@update']);
答案 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 ]));