簡體   English   中英

使用字符串時,與Javascript Array.prototype.map()有點混淆

[英]A little confused with Javascript Array.prototype.map() when working with string

我正在閱讀地圖/減少文檔,這個特定的字符串示例對我沒有意義。

var toCode = function(char) {
   return char.charCodeAt(0);    
}

首先,有用的東西。 它為什么有效? string不是數組。

var text = "Hello World";
var map = Array.prototype.map;
console.log(map.call(text, toCode));

現在,事情不起作用。 這不完全和上面一樣嗎?

console.log(text.map(toCode));

我使用www.codeacademy.com控制台進行測試,這是錯誤消息:

 TypeError: undefined is not a function (evaluating '"hello world".map(toCode)')

謝謝。

你的第二個代碼不起作用,因為字符串沒有map方法,但你可以從Array中借用它,因為數組方法適用於類似數組的對象,即帶有數字鍵的對象,如字符串:

地圖功能是故意通用的; 它不要求它的this值是一個Array對象。 因此,它可以轉移到其他類型的對象以用作方法。 map函數是否可以成功應用於宿主對象是依賴於實現的。

http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.19

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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