检查数组键是否为数字

Cyr*_*l F 2 javascript arrays sorting jquery

我有数组的键可以是真正的字符串

var array = {
    'Blue' : 1,
    'Red'  : 2,
    'Green': 3
}
Run Code Online (Sandbox Code Playgroud)

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

var array = {
    9     : 1,
    '9.5' : 2,
    10    : 3
    '10.5': 4
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

var array = {
    9     : 1,
    10    : 3,
    '9.5' : 2
    '10.5': 4
}
Run Code Online (Sandbox Code Playgroud)

我需要保持它的排序.我的解决方案运行良好但我需要检查密钥是数字还是字符串.如果它们是字符串,我不需要对数组进行排序.就像是:

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

chr*_*spy 5

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

if(Object.keys(array).every(key => !isNaN(key)){ //sort }
Run Code Online (Sandbox Code Playgroud)