您好我想检查数组中的5个随机数是否在升序。 例如:
var array = [2, 5, 5, 4, 7, 3, 6];
到此:
array = [2,3,4,5,6];
当然,如果可能有更高的序列:
array = [3,4,5,6,7];
jQuery中有这种排序的快捷方式吗? 提前谢谢。
答案 0 :(得分:0)
我认为,这将有所帮助:
(或反向,切片前5,反转)就像我一样,因为你的数组可能小于5。
如果结果数组的长度为5,那么你得到肯定答案。
console.log($.unique([2,5,5,4,7,3,6]).sort().reverse().slice(0,5).reverse())
答案 1 :(得分:0)
var array = [2, 5, 5, 4, 7, 3, 6];
//first convert into an object literal for fast lookups.
var ao = {};
array.forEach(function (e) { ao[e] = true; });
//now loop all in array, and then loop again for 5
array.forEach(function (num) {
var count = 0, l;
for (l = 0; l < 5; l ++) {
if (ao[num + l]) count ++;
}
if (count === 5) {
//found, push into array just to show nice in console
var nums = [];
for (l = 0; l < 5; l ++) {
nums.push(num + l);
}
console.log(nums.join(','));
}
});
答案 2 :(得分:0)
您可以执行以下操作;
function checkStraight(a){
var s = [...new Set(a)].sort((a,b) => a-b);
return s.length >= 5 && s.reduce((p,c,i,a) => c - a[i-1] === 1 ? ++p
: p < 5 ? 1
: p , 1) > 4;
}
var array = [2, 5, 5, 4, 7, 3, 6, 9],
result = checkStraight(array);
console.log(result);
&#13;