![](/img/trans.png)
[英]Javascript problems when converting a string to an array and then back again
[英]Javascript - Converting a String to an Array and Back Again within Chained Map Methods
目標:我試圖將 .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(" ")
工作正常並將字符串轉換為數組。
任何幫助深表感謝。
Array.map()
方法迭代一個數組,創建一個新數組,並將回調函數應用於每個項目。 無論回調函數返回什么,都是新數組中項目的值。
您正在使用 map 來迭代數組,但是您正在改變原始數組,並且不從回調中返回任何內容(隱式返回undefined
)。
在回調變換k
(項目)並返回它:
function binaryAgent(str) { return str.split(" ") .map(k => String.fromCharCode(parseInt(k, 2))) .join(""); } const result = binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000"); console.log(result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.