想要修剪数组中的每个字符串,例如,给定
x = [' aa ', ' bb '];
Run Code Online (Sandbox Code Playgroud)
产量
['aa', 'bb']
Run Code Online (Sandbox Code Playgroud)
我的第一次试验是
x.map(String.prototype.trim.apply)
Run Code Online (Sandbox Code Playgroud)
它得到了"TypeError:Function.prototype.apply在undefined上调用,这是一个未定义的而不是函数"在chrome中.
然后我试了一下
x.map(function(s) { return String.prototype.trim.apply(s); });
Run Code Online (Sandbox Code Playgroud)
有用.有什么不同?
我试图绑定其中一个toLowerCase
或toUpperCase
一个变量,我错过了一些步骤.这是我的代码的简化版本:
for(let i = 0; i < arr.length; i++) {
if(flag) {
arr[i] = arr[i].toUpperCase();
}
else {
arr[i] = arr[i].toLowerCase();
}
}
Run Code Online (Sandbox Code Playgroud)
我希望我可以这样做:
let func = flag ? String.prototype.toUpperCase : String.prototype.toLowerCase;
arr = arr.map(x=>func(x));
Run Code Online (Sandbox Code Playgroud)
虽然我可以设置功能,看起来我没有正确使用它,因为我得到了Uncaught TypeError: String.prototype.toLowerCase called on null or undefined
.我在这里错过了什么?