我正在处理一个JavaScript挑战,要求你编写一个函数:“返回应该将值(第二个参数)插入到排序数组(第一个参数)中的最低索引。例如,{{1应该返回where([1,2,3,4], 1.5)
,因为它大于1
,但小于1 (0th index)
。“
提示表示在此挑战之前使用我不熟悉的内置“2 (1st index)
”方法。下面是我到目前为止,我认为我很远。
.sort()
答案 0 :(得分:4)
拆分这两个陈述。
function where(arr, num) {
arr.push(num);
arr.sort(function(a, b) {
return a - b;
});
return arr.indexOf(num);
}
console.log(where([40, 60], 30)); // 0
console.log(where([40, 60], 50)); // 1
console.log(where([40, 60], 70)); // 2

答案 1 :(得分:3)
正如@Xufox正确提出的那样,push
返回数组的新长度,不数组本身。
如下所示重新排序代码:
function where(arr, num) {
arr.push(num); // Carry out push operation.
arr.sort(function(a,b){return a-b;}); // Sort array.
return arr.indexOf(num); // Return index of 'num'.
}
console.log(where([40, 60], 50));
答案 2 :(得分:0)
function where(arr, num) {
let index = arr.sort((x,y) => x-y)
.find(x => num <= x);
return index === undefined? arr.length: arr.indexOf(index);
}
答案 3 :(得分:-1)
function getIndexToIns(arr, num) {
arr.sort(function(a, b) {
return a - b;
});
var i=0;
while(num>arr[i])
i++;
return i;
}