javascript - 如何正确地对对象数组进行排序?

标签 javascript arrays json sorting

我在让对象数组正确排序时似乎遇到了一些问题。

例如,假设我有以下内容:

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)

关于javascript - 如何正确地对对象数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48759262/

相关文章:

javascript - Typescript ts-check javascript 泛型

C: unsigned char * bytes 数组将元素复制到其他 unsigned char * 数组

java - 如何查询 Firestore 数组值?

android - 如何在 WebView 中获取 POST 请求的 JSON 响应?

javascript - 正则表达式 - 如何匹配匹配和不匹配模式的所有字符组?

javascript - 如何将任何指定网页中的文本获取到变量中?

javascript - 尽管清除缓存、删除/重新安装、新的 MAMP 主机设置等,Chrome 仍加载缓存的 Javascript

尝试使用 C++ const 静态成员初始化数组时未识别

json - 自动创建表并从json文件中插入数据

javascript - 获取 JSON 数组中前 5 个分数值