我有一个最小值和最大值。遍历数组我需要删除min和max之间的所有元素。我不能使用任何内置的数组函数,如拼接,数组需要保持原始顺序。例如数组[1,5,13,27,58] min = 10 max = 30会返回一个[1,5,58]的数组。我正在寻找更多关于如何在N时间复杂度下做到这一点的策略。这个问题是面试准备。使用任何内建函数或新数组在JavaScript中过滤数组
这里是我试过的代码,
function filter_range(array, min, max) {
for (var i = 0; i < array.length; i++) {
if (min < array[i] && array[i] < max) {
for (var j = i; j < array.length - 1; j++) {
var temp = array[j]
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
var array = [1, 5, 23, 13, 59];
filter_range(array, 10, 30);
for (var i = 0; i < array.length; i++) {
console.log(array[i])
}
@kevinternet,我只是说我试过的代码。我没有得到它的工作 – Aaron
该数组总是要排序? –
@MikeC数组并不总是要排序 – Aaron