在数组中找到大于右边所有元素的整数

时间:2019-02-16 13:45:58

标签: javascript arrays sorting

我需要编写一个JS函数来查找所有顶部整数,顶部整数是一个大于其右边所有元素的整数。这是我所走的路:

jsBin

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

1 个答案:

答案 0 :(得分:1)

您可以使用slice()Math.max()进行此操作。如果17arr2中的前整数。那么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]