当数组数据中出现较小数字时,我在停止执行时遇到错误
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')
}
}
答案 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)