我有一个数组,其中出现两次最大数字。我想在findSum数组中得到第二次出现的最大数,所以索引[3],然后返回另一个数组的索引[3],数字。
findSum = [49, 81, 81, 64];
Function findLargest(arr) {
var largest = Math.max.apply(Math, arr);
return largest;
};
console.log(findLargest(findSum));
var numbers = ['4916-2600-1804-0530', '4779-252888-3972',
'4252-278893-7978', '4556-4242-9283-2260'];
现在我正在使用Math.max找到最大的,我想我只是返回第一次出现,81的索引[2]。旁注:你如何检查哪81个返回?提前谢谢!
答案 0 :(得分:0)
此函数将查找数组中的最大数字和数组中最大数字的最后一个索引。
function findLastIndexOfLargestNumber(array){
var maxNum = Number.MIN_VALUE;
var maxNumIndex = 0;
for(var i = 0; i < array.length; i++){
var currentNumber = array[i];
if(currentNumber >= maxNum){
maxNum = currentNumber;
maxNumIndex = i;
}
}
return { maxNum : maxNum, maxNumIndex : maxNumIndex };
}
console.log(findLastIndexOfLargestNumber([49, 81, 81, 64]));
答案 1 :(得分:0)
您可以使用Array.lastIndexOf
,因为数组从零开始,所以会返回index[2]
。
var findSum = [49, 81, 81, 64];
function findLastLargest(arr) {
var largest = Math.max.apply(Math, arr);
return arr.lastIndexOf(largest);
}
var numbers = ['4916-2600-1804-0530', '4779-252888-3972',
'4252-278893-7978', '4556-4242-9283-2260'
]
console.log(numbers[findLastLargest(findSum)])
答案 2 :(得分:0)
您可以使用数组的lastIndexOf
功能。
findSum = [49, 81, 81, 64];
Function findLargest(arr) {
var largest = Math.max.apply(Math, arr);
return largest;
};
console.log(findSum.lastIndexOf(findLargest(findSum)));
var numbers = ['4916-2600-1804-0530', '4779-252888-3972',
'4252-278893-7978', '4556-4242-9283-2260'];
答案 3 :(得分:0)
一条捷径。
var findSum = [49, 81, 81, 64],
numbers = ['4916-2600-1804-0530', '4779-252888-3972',
'4252-278893-7978', '4556-4242-9283-2260'],
number = numbers[findSum.lastIndexOf(Math.max(...findSum))];
console.log(number);