簡體   English   中英

Javascript - 在鏈式映射方法中將字符串轉換為數組並再次返回

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM