用JavaScript对数组中的递增数字进行排序

时间:2019-04-03 14:02:08

标签: javascript arrays

当数组数据中出现较小数字时,我在停止执行时遇到错误

Let seat1 = [2, 5, 6, 9, 2, 12, 18];



以来,控制台应记录该值直至达到9 2 < 5 < 6 < 9 然后从9 > 2开始省略2

然后从12 < 18.

继续

let num = [2, 5, 6, 9, 2, 12, 18];
    
    for (let i = 0; i < num.length; i++) {
        if ((num[i] + 1) > num[i]) {
    
            console.log(num[i])
        } else {
            console.log('kindly fix')
        }
    }

5 个答案:

答案 0 :(得分:3)

使用Array.reduce()创建一个新数组,其中没有不大于累加器中的最后一项(acc)或-Infinity(如果是第一项)的项目:

const num = [2, 5, 6, 9, 2, 3, 12, 18];

const result = num.reduce((acc, n) => {
  if(n > (acc[acc.length - 1] || -Infinity)) acc.push(n);

  return acc;
}, []);

console.log(result);

答案 1 :(得分:1)

使用if和for的简单答案-

let num = [2, 5, 6, 9, 2 , 3, 12, 16, 9, 18];
let max = 0;

for (let i = 0; i < num.length; i++) 
{ 
   if ((i == 0) || (num[i] > max)) {
     max = num[i];
     console.log (num[i]);
   }
}

答案 2 :(得分:1)

您可以通过存储大于最后一个值的最后一个值来过滤数组。

var array = [2, 5, 6, 9, 2, 3, 12, 18],
    result = array.filter((a => b => a < b && (a = b, true))(-Infinity));

console.log(result)

答案 3 :(得分:0)

存储最大值,并对照当前最大值检查num [i]。如果num [i]较大,请记录并设置新的最大值。初始最大值应为第一个num值,但应较小,这样在第一次检查时就不会失败。

let num = [2, 5, 6, 9, 2, 12, 18];
let max = num[0] - 1;

for (let i = 0; i < num.length; i++) {
  if (num[i] > max) {
    console.log(num[i]);
    max = num[i];
  }
}

答案 4 :(得分:-2)

let num = [2, 5, 6, 9, 2, 12, 18];
let result = num.sort((a, b) => a - b).filter((elem, pos, arr) => {
     return arr.indexOf(elem) == pos;
  })
 console.log(result)