我需要编写一个JS函数来查找所有顶部整数,顶部整数是一个大于其右边所有元素的整数。这是我所走的路:
function testArray(array) {
var copy = [...array],
result = [],
number = [];
copy.forEach(function(el, i, ar) {
let sliced = array.slice(i);
console.log(sliced);
// number.push(sliced[0]);
number = [sliced[0]];
console.log(number);
for (let y = i; y <= sliced.length - 1; y++) {
// console.log(sliced,'sliced array')
console.log(sliced[y], 'for-loop currentValue')
// let newArray = sliced.filter(function(el,i,ar){
// return el < sliced[0];
// console.log(sliced[0]);
// console.log(el);
// console.log(ar);
// if (sliced[0] > el) {
// numbers.push(sliced[0]);
// }
// });
}
})
// console.log(newArray);
}
var arr1 = [1, 4, 3, 2]; //--> 4,3,2
var arr2 = [14, 24, 3, 19, 15, 17]; //--> 24,19,17
var arr3 = [41, 41, 34, 20]; //--> 41,34,24
var arr4 = [27, 19, 42, 2, 13, 45, 48]; //--> 48
答案 0 :(得分:1)
您可以使用slice()
和Math.max()
进行此操作。如果17
是arr2
中的前整数。那么48
也应该在arr4
的顶部。我的函数返回数组。您可以打印所有数组。
var arr1 = [1,4,3,2]; //--> 4,3,2
var arr2 = [14, 24, 3, 19, 15, 17]; //--> 24,19,17
var arr3 = [41, 41, 34, 20]; //--> 41,34,24
var arr4 = [27, 19, 42, 2, 13, 45, 48];
function topInts(arr){
const tops = [];
arr.forEach((item,i) => {
if(Math.max(...arr.slice(i)) === item) tops.push(item);
})
console.log([...new Set(tops)]);
}
topInts(arr1); // [4,3,2]
topInts(arr2); // [24,19,17]
topInts(arr3); // [41,34,24]
topInts(arr4); // [48]