javascript - 使用非数字键对 JavaScript 数组进行数字转换和排序

标签 javascript jquery arrays sorting

我有一个以下结构的 JS 数组:

Array(
    [0] => Array(
        reference : "8926"
        name : "xyz1"
        id_product : "78"
    )
    [1] => Array(
        reference : "11588"
        name : "xyz2"
        id_product : "21"
    )
    [2] => Array(
        reference : "119"
        name : "xyz3"
        id_product : "135"
    )
)

我需要使用reference键对这个数组进行排序,我已经使用multisort函数完成了它;

但问题是:尽管 reference 是数字,但在数组结构中它被定义为字符串,因此而不是像这样排序: 119, 8926, 11588 它像 11588 119 8926 一样对它进行排序,即像字符串一样。

我无法重新构造数组,因为我通过 API 接收它,是否可以对它进行数字排序而不必单独以数字数据类型重新创建它(因为我必须传递数组以相同的格式转发,因此双重转换将使脚本变得忙碌)?

PS - 当前排序(非数字)是使用 this function. 完成的

最佳答案

您可以使用 unary plus + operator 将这两个参数从字符串转换为数字。在 sort() 函数内。

var data = [{"reference":"8926","name":"xyz1","id_product":"78"},{"reference":"11588","name":"xyz2","id_product":"21"},{"reference":"119","name":"xyz3","id_product":"135"}]

data.sort((a, b) => +a.reference - +b.reference);
console.log(data)

关于javascript - 使用非数字键对 JavaScript 数组进行数字转换和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44412644/

相关文章:

python - 将所有非零值放在数组的右边

c - 如何知道某个位置是否在我的二维数组之外?

javascript - 在 JavaScript 中重定向

javascript - Jquery ajax页面根据post请求自动重定向

javascript - 如何将聪明的需求转换为导入?

javascript - jQuery 绘制和修改线条和位置

php - 为什么我不能填写注册表? CSS有问题吗?

javascript - 如何在js中的div中设置数组的特定部分的样式

javascript - 使用 Jquery Mobile 多页模板将页面重定向到带有 Javascript 的 div

javascript - yargs - require 函数以无法静态提取依赖项的方式使用