Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按日期对对象数组排序_Javascript_Html - Fatal编程技术网

Javascript 按日期对对象数组排序

Javascript 按日期对对象数组排序,javascript,html,Javascript,Html,比如说 myArr= [ {name:"Joe", id:3, date: "2012.10.12"}, {name:"Ed", id:43, date: "2012.02.12"}, {name:"Mark", id:22, date: "2012.02.11"} ]; 那么,如何按日期对该数组进行排序 这只是一个小例子,但它将像该数组中的1000个对象。 我在Internet上搜索了一些示例,发现它们使用了sort()函数,但在我的大数组中它不起作用。假设日

比如说

myArr= [
    {name:"Joe",  id:3,  date: "2012.10.12"},
    {name:"Ed",   id:43, date: "2012.02.12"},
    {name:"Mark", id:22, date: "2012.02.11"}
];
那么,如何按日期对该数组进行排序

这只是一个小例子,但它将像该数组中的1000个对象。
我在Internet上搜索了一些示例,发现它们使用了
sort()
函数,但在我的大数组中它不起作用。

假设日期只是字符串,格式与代码相同,您可以这样做:

myArr.sort( (a,b) => a.date.localeCompare(b.date) )
sort
方法将函数作为参数,每次需要比较数组中的两个元素时都会调用该函数。所以,要按特定字段排序,需要传递一个函数来比较传入的两个对象的字段


排序比较器函数必须返回一个特殊值,指示正确的顺序:-1如果第一个参数(通常称为
a
)应位于第二个参数(
b
)之前;1如果
b
应位于
a
之前;如果它们相等,则为0(因此顺序无关紧要)。幸运的是,已经有一种方法可以比较字符串并为
sort
返回正确的值(如果调用
a
并将
b
作为参数传递):
localeCompare
。由于要比较的字段是字符串,因此可以在比较函数中的字段上调用该函数,以返回正确的排序值。

假设日期只是代码中格式相同的字符串,则可以执行以下操作:

myArr.sort( (a,b) => a.date.localeCompare(b.date) )
sort
方法将函数作为参数,每次需要比较数组中的两个元素时都会调用该函数。所以,要按特定字段排序,需要传递一个函数来比较传入的两个对象的字段


排序比较器函数必须返回一个特殊值,指示正确的顺序:-1如果第一个参数(通常称为
a
)应位于第二个参数(
b
)之前;1如果
b
应位于
a
之前;如果它们相等,则为0(因此顺序无关紧要)。幸运的是,已经有一种方法可以比较字符串并为
sort
返回正确的值(如果调用
a
并将
b
作为参数传递):
localeCompare
。由于要比较的字段是字符串,您可以在比较函数中的字段上调用该函数,以返回正确的排序值。

那么,您使用的代码中有哪些不用于排序?对大型阵列进行排序可能会导致速度缓慢。我们无法帮助您,除非您展示您所做的导致缓慢的事情。正如epascarello所暗示的,如果您不展示您所做的尝试,我们将不知道您哪里出了问题,我们只能为您解决问题,这不是堆栈溢出的意图。不是同一个问题!!!asSo您使用的代码中有哪些无法对其进行排序?对大型阵列进行排序可能会导致速度缓慢。我们无法帮助您,除非您展示您所做的导致缓慢的事情。正如epascarello所暗示的,如果您不展示您所做的尝试,我们将不知道您哪里出了问题,我们只能为您解决问题,这不是堆栈溢出的意图。不是同一个问题!!!因为你是我的救世主!!非常感谢你!!!天哪,你是我的救世主!!非常感谢你!!!