【发布时间】:2019-11-29 16:32:38
【问题描述】:
目标:我正在尝试将 .map() 方法与字符串到数组的转换链接在一起,然后返回到字符串 [当前通过 .split(" ") 和 .join("")]。
上下文:挑战要求将一串二进制数转换为文本(请注意,这不是我要寻求帮助的内容)。
我的回答(有效):
function binaryAgent(str) {
let arr = str.split(" ");
//METHOD TWO - Chaining the commands together
arr.map((k,index) => {
arr.unshift(parseInt(k,2));
arr.splice(index+1,1);
}).map((k,index) => {
arr.unshift(String.fromCharCode(arr[index]));
arr.splice(index+1,1);
})
let string = arr.join("");
return string;
}
binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000");
工作(我想了解是否有办法让它工作但我错过了):
function binaryAgent(arr) {
//METHOD TWO - Chaining the commands together
let string = arr.split(" ").map((k,index) => {
arr.unshift(parseInt(k,2));
arr.splice(index+1,1);
}).map((k,index) => {
arr.unshift(String.fromCharCode(arr[index]));
arr.splice(index+1,1);
}).join("");
return string;
}
binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000");
第二段代码返回“arr.unshift 不是函数”错误。就好像原始字符串没有被转换为数组一样,即使如果写在它自己的行上它也会。 IE。
arr = arr.split(" ") 工作正常并将字符串转换为数组。
非常感谢任何帮助。
【问题讨论】:
-
您的映射函数没有返回任何内容,这意味着您将在第一个
map()之后拥有一组undefined值。如果这是故意的,最好使用forEach()。
标签: javascript arrays