检查数组键是否为数字

时间:2017-02-14 21:05:22

标签: javascript jquery arrays sorting

我的数组中包含可能是真正字符串的键

var array = {
    'Blue' : 1,
    'Red'  : 2,
    'Green': 3
}

或者它可能是数字,但有时浮点数被认为是字符串,我想因为它不是数组而是对象:

var array = {
    9     : 1,
    '9.5' : 2,
    10    : 3
    '10.5': 4
}

这个实际上不是一个数组,所以如果我想保留原始顺序,我需要对它进行排序:

$.each(Object.keys(array).sort(function(a, b) {
    var anum = parseFloat(a),
        bnum = parseFloat(b);
    return anum - bnum;
}), function(index, value) {
    ……
});

如果我不这样做,我的阵列是:

var array = {
    9     : 1,
    10    : 3,
    '9.5' : 2
    '10.5': 4
}

我需要对它进行排序。我的解决方案运行良好但我需要检查密钥是数字还是字符串。如果它们是字符串,我不需要对数组进行排序。类似的东西:

$.each(/*if my array has numbers as keys I sort the array as above, else just loop*/,
function(index, value) {
    ……
});

1 个答案:

答案 0 :(得分:5)

真的不应该调用该对象'数组'但是:

if(Object.keys(array).every(key => !isNaN(key)){ //sort }