以下为什么不工作?(Chrome,所以Arrays.map没有问题)
[" a ", "b", " c", "d "].map(String.prototype.trim)
TypeError: String.prototype.trim called on null or undefined
Run Code Online (Sandbox Code Playgroud)
Cer*_*rus 15
map 将数组的每个元素作为参数传递给函数:
[element1, e2].map(myFunction); // --> myFunction(element1); myFunction(e2)
Run Code Online (Sandbox Code Playgroud)
String.prototype.trim不是传递要剪裁的字符串的函数.您将该函数称为该字符串的方法,而不是:
" some string ".trim(); // "some string"
Run Code Online (Sandbox Code Playgroud)
要trim在a中使用.map,您需要执行以下操作:
[" a ", "b", " c", "d "].map(function(e){return e.trim();});
Run Code Online (Sandbox Code Playgroud)
一个带有箭头功能的较短版本:
[" a ", "b", " c", "d "].map(e => e.trim());
Run Code Online (Sandbox Code Playgroud)
这实际上是因为Array.map()函数应该有一个currentElement参数,String.prototype.trim而不带任何参数,因此我们不能这样称呼它.所以,你必须努力做到这一点:
[" a ", "b", " c", "d "].map(function(elem){
return elem.trim();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6757 次 |
| 最近记录: |