Javascript - 对 2 参数对象的数组进行排序

标签 javascript arrays sorting sql-order-by

考虑以下数组:

var thingsThatMatter = [
    {"Colour of hair", "High"}, 
    {"Colour of eyes", "Low"}, 
    {"Colour of shoes", "Medium"}
];

对这个例子表示歉意,但这里的关键部分是高、中、低参数。
这就是我正在处理的数据(1,2,3 会容易得多......!)

我是否可以轻松地对数组进行排序,以便项目按顺序运行 - 高、中、低?

或者,有没有一种方法可以“获取”优先级参数为“低”的项目?

注意 - 稍后它的结构将更改为数字,但是现在,这是我必须处理的。

最佳答案

使用Array.sort() with a custom compare function .

<小时/>

这里,有一个cookie:

var thingsThatMatter = [
    ["Colour of hair", "High"],
    ["Colour of eyes", "Low"],
    ["Colour of shoes", "Medium"]
];

function comparator(a, b) {
    a = comparator.priorities[a[1]];
    b = comparator.priorities[b[1]];

    if (a > b) return 1;
    if (a < b) return -1;
    return 0;
}

comparator.priorities = {
    High: 0,
    Medium: 1,
    Low: 2
}

thingsThatMatter.sort(comparator);

http://jsfiddle.net/mattball/T3hNm/

关于Javascript - 对 2 参数对象的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372941/

相关文章:

c - 执行排序和搜索 C 函数时出错

javascript - 网页设计中的初始页面 : How do you maintain searchability?

javascript - 如何链接到页面并使用 Rails 激活特定选项卡

c - 尝试调整二维数组大小时出现段错误

python - 引用数组的条件随机元素并替换它

javascript - 将具有相同属性的对象分组 - javascript

javascript - 网站所有者 : Invalid site key 的 Google reCAPTCHA 错误

javascript - 如何等到动画完成后再重新调用函数

sorting - 奇偶排序不兼容

python - 仅使用标准库按另一列中分组值的一列累计总数对文本文件进行排序?