javascript - 根据变量的值对变量进行排序,然后打印它们

标签 javascript

我有 5 个变量:abcde,它们的值取决于用户输入。现在我想根据它们的值按降序对这些变量进行排序,然后打印它们。例如,我有以下值:

a = 1, b = 1.5, c = 1, d = 3, e = 2

我想打印这样一个列表:

d = 3
e = 2
b = 1.5
a = 1
c = 1

我曾尝试使用关联数组来实现这一点,但我失败了,因为它没有被索引。你能帮我解决这个问题吗?

最佳答案

嗯,有点像

var vars = {a: 1, b: 1.5, c: 1, d: 3, e: 2}, keys = Object.keys(vars);
keys.sort(function (a, b) {
    return vars[b] - vars[a];
});
keys.forEach(function (key) {
    console.log(key + ' = ' + vars[key]);
});

看起来效果不错。请注意,这使用了 ES5 Object.keys,某些浏览器不支持它,因此如果您希望它在 Opera 和 IE < 9 中运行,您必须执行以下操作

if (typeof Object.keys !== 'function') {
    Object.keys = function (obj) {
        var keys = [], i;
        for (i in obj) {
            if (obj.hasOwnProperty(i)) {
                keys.push(i);
            }
        }
        return keys;
    };
}

哦,它也使用 ES5 forEach,所以如果你需要使用 IE < 9,你必须做类似的事情

if (typeof Array.prototype.forEach !== 'function') {
    Array.prototype.forEach = function (func) {
        for (var i = 0, l = this.length; i < l; i += 1) {
            func(this[i], i);
        }
    };
}

关于javascript - 根据变量的值对变量进行排序,然后打印它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7133946/

相关文章:

javascript - Xpath 单击 td 中的按钮,其中行包含特定文本值

javascript - 当前时间到达特定时间时重定向?

javascript - 关于使用cordova 2.7.0在phonegap android中单击注销按钮的清除历史记录

javascript - Rails、button_to 和 link_to、远程 : true scrolls page when clicked

javascript - 使用 JSP scriptlet 中的 AJAX 使用从 Oracle 10g 数据库获取的数据填充文本字段

javascript - onKeyUp 不起作用?也许这是错误的ajax代码?

javascript - 在 Angular Component 类中调用自定义 jQuery 函数

javascript - Node 如何设置它的环境变量?

javascript - 如何使代码中高度的像素值动态化?

javascript - 将 JSON 数据分组到多个键上并保留键