我似乎在让一组对象正确排序方面遇到了一个小问题。
例如,假设我有以下内容:
var items = [
{id: '1', itn: '1'},
{id: '2', itn: '10P'},
{id: '3', itn: '2'},
{id: '4', itn: '3'}
];
我需要根据“ itn”中的值对该数组进行排序。但是,当我运行下面的函数时,将其列出为1、10P,2、3,而不是1、2、3、10P。
userData.sort(function (a, b) {
return (b.itn > a.itn) ? -1 : (b.itn < a.itn) ? 1 : 0;
});
我对如何进行此操作有些困惑,也不确定要搜索哪种关键字以获得正确的指导。任何帮助表示赞赏!
提前致谢。
最佳答案
似乎您正在尝试根据itn
中存在的整数部分对数组进行排序。为此,可以使用parseInt()
将项目(itn
)转换为整数,然后比较这些整数值:
var userData = [
{id: '1', itn: '1'},
{id: '1', itn: '10P'},
{id: '1', itn: '2'},
{id: '1', itn: '3'}
];
var res = userData.sort(function (a, b) {
a = parseInt(a.itn);
b = parseInt(b.itn);
return (b > a) ? -1 : (b < a) ? 1 : 0;
});
console.log(res)