比较javascript数组中的数值

时间:2015-03-26 18:17:15

标签: javascript arrays

我有一个如下所示的数组

var nums = ["1", "2", "2", "3", "4", "4", "5"];

这里我试图比较数组中的值并测试值是否按升序排列。

如果两个数组值相同,我需要跳过它。如果订单类似于1,3,2 ..那么我将抛出一个错误,它们的顺序错误。我想在这里使用纯JavaScript。

3 个答案:

答案 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');
}