[英]TypeError: res.sendStatus is not a function - Why do I keep getting this error?
[英]Why do I keep getting a TypeError: args.sort is not a function?
function getIndexToIns(arr, num) {
var args = Array.prototype.join.call(arguments);
function compareNumbers(a, b) {
return a - b;
}
args.sort(compareNumbers);
return args;
}
getIndexToIns([40, 60], 50);
仅仅因为Array.prototype.join
返回一个字符串而引发了错误。 为了将类似数组的对象转换为数组,您需要改用Array.prototype.slice.call
。
更换
var args = Array.prototype.join.call(arguments);
有了这个
var args = Array.prototype.slice.call(arguments);
var args = Array.apply(null, arguments);
或使用Array.from
var args = Array.from(arguments);
最干净的解决方案是ES6 其余参数
function getIndexToIns(...args) {
function compareNumbers(a, b) {
return a - b;
}
args.sort(compareNumbers);
return args;
}
getIndexToIns([40, 60], 50);
因为Array.prototype.join.call(arguments);
将返回字符串而不是数组,并且String
没有排序方法。
更换
var args = Array.prototype.join.call(arguments);
同
var args = Array.apply(null, arguments);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.