使用map函数对具有数字数组的字符串进行解码
Use map function to decode a string with an array of numbers
我正在尝试编写一个解码函数,其中参数是一个字母串(在本例中是字母表)和一个数字数组。我想在数组上使用.map方法以字符串形式返回编码消息。这些数字是正整数。
给定传入的数组,函数应该返回字符串"beans"。
我搞不懂其中的逻辑。这是我所拥有的:
function decoder(key, code) {
var arr = key.split('');
var result = "";
arr.map(function(item) {
for(var i = 0; i <= code.length; i++) {
if(item[i] === code[i]) {
result += item;
}
}
return result;
});
}
console.log(decoder("abcdefghijklmnopqrstuvwxyz", [1, 4, 0, 13, 18 ]));
与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 ]));
您可以映射code
数组以获得每个位置的字符,然后加入它:
function decoder(key, code) {
return code.map(function(c) {
return key.charAt(c);
}).join('');
}
console.log(decoder("abcdefghijklmnopqrstuvwxyz", [1, 4, 0, 13, 18 ]));
其他人已经给出了一个更坚实的解决方案,但您可以使用您最初使用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 ]));
相关文章:
- Json字符串可以'当字符串末尾有“'时,t解码;
- 为什么我不必在 JS 中解码/解析 PHP 生成的 JSON 字符串
- 需要使用Java编码/转义HTML字符串,并在JavaScript中解码HTML字符串
- 用JavaScript对字符串进行编码/解码
- 如何在Javascript中对JSON字符串中的阿拉伯语进行编码/解码
- jQuery.parseJSON()未在Windows服务器上解码有效的Json字符串
- 用Ruby/Javascript解码带引号的可打印字符串
- 使用map函数对具有数字数组的字符串进行解码
- PHP 字符串正在将空格更改为 + 符号.需要解码以保留空格
- 编码/解码十六进制为 utf-8 字符串
- 如何在我的 AngularJS 应用程序中解码 URL 的部分查询字符串
- 如何从字符串解码链接
- 如何在 JavaScript 中对字符串进行编码并在 Java 中解码字符串
- 如何在java中解码由javascript使用readAsDataURL()生成并由Json发送的字符串
- 如何将中文十六进制字符串解码为中文字符或JavaScript
- Angular - 将字符串解码为 HTML
- JavaScript JSon字符串解码
- 在javascript中将字符串解码为数组值
- 为什么我得到JSON字符串解码错误时使用extjs ajax
- 如何从十六进制编码的字符串解码为UTF-8字符串