我有一个如下所示的数组
var nums = ["1", "2", "2", "3", "4", "4", "5"];
这里我试图比较数组中的值并测试值是否按升序排列。
如果两个数组值相同,我需要跳过它。如果订单类似于1,3,2 ..那么我将抛出一个错误,它们的顺序错误。我想在这里使用纯JavaScript。
答案 0 :(得分:1)
似乎很简单:
function isAscending(arr){
asc = true;
for(var i=1;i<arr.length;i++){
if(Number(arr[i]) < Number(arr[i-1])){
asc = false;
break;
}
}
return asc
}
答案 1 :(得分:1)
我将使用parseInt()循环遍历每对项目以从字符串中获取数值,并在循环之后,将递增索引的值与对数进行比较。
编辑:正如Rick Hitchcock所建议的那样,如果任何一对不是升序或相等,我们就可以返回false,如果整个循环都通过,则返回true。function isAscending(array) {
for (var i = 0; i < (array.length - 1); i++) {
if (parseInt(array[i]) > parseInt(array[i+1])) {
return false;
}
}
return true;
}
答案 2 :(得分:1)
使用jquery
var num = [1,5,3,3,4,4];
var sortedNum = num.slice(0).sort(function(a,b) {
return a-b;
});
//if its sorted
if(num.join(',') === sortedNum.join(',')) {
//get only unique elems
var finalArr = $.grep(num, function(el, index) {
return index === $.inArray(el, num);
});
console.log(finalArr);
}
else {
console.log('Error Not Sorted');
}