javascript - 如何在 JavaScript 中根据对象值对数组进行排序?

标签 javascript jquery sorting object

我有一个对象结果集。有以下记录

var resultset = [{0: "A", 1: "25.14", 2: "0,0,0,0,30.79,0,7.68,0,0,6.13,0,0"}, 
{0: "B", 1: "3.26", 2: "0,0,0,31,0,0,0,0,0,0,0,0"}, 
{0: "C", 1: "37.01", 2: "0,0,0,0,0,0,0,0,0,0,0,0"},  
{0: "D", 1: "1.18", 2: "0,0,0,9.63,0,0,0,0,0,0,0,0"},  
{0: "E", 1: "0.28", 2: "0,0,0,13.22,0,0,0,0,0,0,0,0"}]

我曾经使用以下代码根据值(即索引 1)对该对象进行排序,

resultset.sort(compareSecondColumn);

function compareSecondColumn(a, b) {
    //alert("A Value -->"+a[1]);
    //alert("B Value -->"+b[1]);
    if (a[1] == b[1]) {

        return 0;
    }
    else {
        //alert(b[1]);
        return (a[1] > b[1]) ? -1 : 1;
        }
   }

但我无法根据索引 1 进行排序。

我的预期输出如下所示,根据索引 1 (37.01) 排序

{0: "C", 1: "37.01", 2: "0,0,0,0,0,0,0,0,0,0,0,0"}  
{0: "A", 1: "25.14", 2: "0,0,0,0,30.79,0,7.68,0,0,6.13,0,0"} 
{0: "B", 1: "3.26", 2: "0,0,0,31,0,0,0,0,0,0,0,0"} 
{0: "D", 1: "1.18", 2: "0,0,0,9.63,0,0,0,0,0,0,0,0"}  
{0: "E", 1: "0.28", 2: "0,0,0,13.22,0,0,0,0,0,0,0,0"}

我尝试从下面的 URL 执行一些对象排序机制。但对我来说不起作用。

http://www.javascriptkit.com/javatutors/arraysort2.shtml

Sorting JavaScript Object by property value

最佳答案

不能对字符串进行排序,只能解析为 float 然后进行比较

function compareSecondColumn(a, b) {
    var valueA = parseFloat(a[1]);
    var valueB = parseFloat(b[1]);
    if (valueA == valueB) {
        return 0;
    } else {
        return (valueA  > valueB) ? -1 : 1;
    }
}

关于javascript - 如何在 JavaScript 中根据对象值对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35216067/

相关文章:

javascript - 在 AngularJS 中使用 ui-router 进行路由

javascript - 如何在我的 View 中从查询中可视化 codeigniter 数组?

jquery - 如何获取多选中所有选定的值?

javascript - 如何在鼠标悬停时暂停 Bootstrap 轮播并在鼠标移开时恢复它?

Jquery/AJAX 动态加载内容未本地加载

javascript - 即使未经验证,表单也始终会提交

java - 如何将排序后的整数传递给 JOptionPane?

algorithm - Best Case Scenario for Quick Sort 示例(需要有人检查我的答案是否正确)

python - Mongodb _id 字段的排序描述非常慢

javascript - 如何使用 prop-types 库在 reactjs 中添加 null 或 number 的 proptypes