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);
答案 0 :(得分:2)
错误被抛出只是因为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);
var args = Array.from(arguments);
最干净的解决方案是ES6 rest parameters
function getIndexToIns(...args) {
function compareNumbers(a, b) {
return a - b;
}
args.sort(compareNumbers);
return args;
}
getIndexToIns([40, 60], 50);
答案 1 :(得分:0)
因为Array.prototype.join.call(arguments);
会返回字符串而不是数组而String
没有排序方法。
替换
var args = Array.prototype.join.call(arguments);
与
var args = Array.apply(null, arguments);