如果我替换为new_one(var new_one=Math.max(Math.abs(array[i]- array[j]),return new_one)
); max_value
的结果将为假?
function absolute_difference(array, num) {
var new_one = -1;
for (var i = 0; i < array.length; i++) {
for (var j = i + 1; j < array.length; j++) {
if ((Math.abs(array[i] - array[j])) <= num) {
var new_one = Math.max(Math.abs(array[i] - array[j]), new_one);
}
}
}
return new_one;
}
console.log(absolute_difference([12, 10, 33, 34], 24));
答案 0 :(得分:3)
您可以获取增量,并对照所需值以及增量是否大于最后一个最大值进行检查。然后存储这些值和本地最大值。
function absolute_difference(array, num) {
var pair,
max = -1,
delta;
for (var i = 0; i < array.length - 1; i++) { // adjust length
for (var j = i + 1; j < array.length; j++) {
delta = Math.abs(array[i] - array[j]);
if (delta <= num && delta > max) {
pair = [array[i], array[j]];
max = delta;
}
}
}
return pair;
}
console.log(absolute_difference([12, 10, 33, 34], 24));