gpt4 book ai didi

javascript - 如何对动态数组进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:13 24 4
gpt4 key购买 nike

我有一个这样创建的动态数组:

window.IDarray = [];

我有一个这样创建的字典:

window.itemdictionary = {};

window.IDarray的长度与window.itemdictionary相同。window.IDarray 的值是唯一的。 window.IDarray 的值也是 window.itemdictionary 的键。

window.itemdictionary 中任何键的“值”的数据类型也是一个字典,其中包含一个名为“modified” 的键,值是一个字符串日期格式示例 “Mon May 28 11:20:46 EDT 2012”

什么是对 window.IDarray 的值进行排序的最佳方式,以便从索引 0window.IDarray 的末尾>,它在 window.itemdictionary 中对应的日期离当前日期越来越远? (即索引 0 将给出最接近当前日期的日期,而索引 n 将给出最远的日期)。

最佳答案

您将需要使用自定义排序功能,请参阅 Array.sort from MDN .

首先,为了按日期排序,您的 "modified": "Mon May 28 11:20:46 EDT 2012" 需要转换为可用于比较的格式, 使用 Date.parse()

var tempItemDictionary = [];   // use temp array to hold the timestamp
// convert dates first
for (var i = 0, item = null; i < IDarray.length; i++) {
item = itemDictionary[IDarray[i]];
tempItemDictionary[IDarray[i]] = {
timestamp: Date.parse(item.modified) // convert date to timestamp
};
}

然后我们使用自定义排序函数通过 .sort() 运行 IDarray:

IDarray.sort(function(a, b) {
return tempItemDictionary[b].timestamp - tempItemDictionary[a].timestamp;
});

参见工作示例:http://jsfiddle.net/788bs/1/

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com