它给定的数字列表。如何制作函数,它将搜索出其中的所有对,给出最大的绝对差异。让函数返回一对索引列表,确定找到的对。让我们不要更改条目列表。案例:对于条目列表 [1, 4, 3, -1, 0, 3.5, 4] 函数必须返回 [[1, 3], [3, 6]]。
我应该找到第一个最大值或最小值并进行比较或做什么?
我认为你应该使用这个:
findPair = function(inputArray) {
var resultArray = []
difference = 0;
resultArray.push([]);
for (var i=0; i<inputArray.length;i++) {
for (var j=0; j<inputArray.length;j++) {
if (Math.abs(inputArray[i] - inputArray[j]) > difference) {
difference = Math.abs(inputArray[i] - inputArray[j]);
resultArray[0][0] = i;
resultArray[0][1] = j;
}
}
}
for (var i=0; i<inputArray.length;i++) {
for (var j=0; j<inputArray.length;j++) {
if ((Math.abs(inputArray[i] - inputArray[j]) === difference) && !((resultArray[0][0] === i) && (resultArray[0][1] === j)) && !((resultArray[0][0] === j) || (resultArray[0][1] === i))) {
resultArray.push([i,j]);
}
}
}
return resultArray;
}
在第一个循环中,我们找到具有最大差异的对,然后在第二个循环中找到此重复项。这是 jsfiddle 链接:http: //jsfiddle.net/4CbsT/