Write JavaScript code that accepts an array of integer and output the sum of two largest integers from the array. But the sum of those two largest integers should be even number.
Example:
#1
var int_array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// should output 7+9 = 16
#2
var int_array = [9, 5, 3, 2, 8, 14, 5, 7, 3, 11, 12]
// should output 12+14 = 26
Following is the solution to the above interview question.
Hope it will help you to in the future.
Example:
#1
var int_array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// should output 7+9 = 16
#2
var int_array = [9, 5, 3, 2, 8, 14, 5, 7, 3, 11, 12]
// should output 12+14 = 26
Following is the solution to the above interview question.
//var int_array = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var int_array = [9, 5, 3, 2, 8, 14, 5, 7, 3, 11, 12]; var first_max_number = Math.max.apply(null, int_array); //Find first max number var index = int_array.indexOf(first_max_number); if (index > -1) { //Once get max number pop from array int_array.splice(index, 1); } var second_max_number =0; for (i=0; i < int_array.length; i++){ //for second max number second_max_number = Math.max.apply(null, int_array); //find second max number if(isEven(first_max_number) && isEven(second_max_number)){ // check both number should be event or odd break; //Once condition get satisfy, break the look }else if(isOdd(first_max_number) && isOdd(second_max_number)){ break; } index = int_array.indexOf(second_max_number); if (index > -1) { //pop second max number from the array int_array.splice(index, 1); } } var sum = first_max_number + second_max_number; alert(first_max_number +" + "+ second_max_number +" = "+ sum); function isEven(n) { //check event number return n % 2 == 0; } function isOdd(n) { // check odd number return Math.abs(n % 2) == 1; }
Hope it will help you to in the future.