我有一个以下结构的 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/