按字段值作为参数对数组中的对象进行排序
Sorting objects in an array by field value as a parameter
这个问题很接近这个问题:在JavaScript 中按字符串属性值对对象数组进行排序
但是,字段值应由用户选择(保存在sortBy
参数中):
function sortList (sortBy, list) {
return list.sort(function (val1, val2) {
if (val1.sortBy > val2.sortBy) {
return -1;
}
if (val1.sortBy < val2.sortBy) {
return 1;
}
return 0;
});
}
var myObj = [
{a: 1, b: 3},
{a: 3, b: 2},
{a: 2, b: 40},
{a: 4, b: 12}
];
sortList(myObj.a, myObj);
对象返回时保持不变。
您已接近:
function sortList (sortBy, list) {
return list.sort(function (val1, val2) {
if (val1[sortBy] > val2[sortBy]) {
return -1;
}
if (val1[sortBy] < val2[sortBy]) {
return 1;
}
return 0;
});
}
var myObj = [
{a: 1, b: 3},
{a: 3, b: 2},
{a: 2, b: 40},
{a: 4, b: 12}
];
sortList("a", myObj);
如果要按某个计算值访问属性,请使用[ ]
运算符而不是.
。实际上,您的代码总是只查找一个名为"sortBy"的属性,而传入的参数被忽略。
相关文章:
- 如何在节点中进行 Json 对象排序.js
- jQuery.每个对象排序
- Javascript对象排序
- Javascript 对象排序
- Javascript中的JSON对象排序
- jQuery停止对象排序
- 带有下划线排序的对象排序的数组
- JS对象排序日期排序
- JSON对象排序被jQuery或Javascript篡改
- 高级对象排序
- 将json对象排序到嵌套树中
- 按两个不同的条件对数组中的对象排序
- 如何在angular js中使用自定义排序顺序对对象排序
- 在AngularJS的ng-repeat中,使用Underscore/Lodash按值将对象排序为一对数组
- 给定一个对象数组,如何根据深度为n的属性对对象排序
- JavaScript数组对象排序没有按预期工作
- 对数组内的对象排序
- 自定义javascript对象排序和维护索引关联
- Javascript对象排序不工作
- Javascript对象的对象排序