考虑以下数组:
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);
关于Javascript - 对 2 参数对象的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372941/