gpt4 book ai didi

javascript - 如何仅对二维数组中的单个列进行排序

转载 作者:行者123 更新时间:2023-11-30 18:08:54 26 4
gpt4 key购买 nike

我有一个名为 dateTime[] 的二维数组。 dateTime[count][0] 包含 future 的日期时间,dateTime[count][1] 包含一个 4 位数的值,如 1234 或其他。我正在尝试按升序对 dateTime[count][0] 的列 0 进行排序。 (即,根据距现在最近的日期时间对二维数组的第 0 列进行排序)

假设我的 javascript 二维数组是这样的:

dateTime[0][0] = 2/26/2013 11:41AM; dateTime[0][1] = 1234;
dateTime[1][0] = 2/26/2013 10:41PM; dateTime[1][1] = 4567;
dateTime[2][0] = 2/26/2013 8:41AM; dateTime[2][1] = 7891;
dateTime[3][0] = 3/26/2013 8:41AM; dateTime[3][1] = 2345;

我只是这样写的,实际上这就是我向 dateTime[count][0] 插入值的方式; = new Date(x*1000); 其中 x 是 unix 时间()

我希望数组在排序后如何显示:

dateTime[0][0] = 2/26/2013 8:41AM; dateTime[0][1] = 7891;
dateTime[1][0] = 2/26/2013 11:41AM; dateTime[1][0] = 1234;
dateTime[2][0] = 2/26/2013 10:41PM; dateTime[2][1] = 4567;
dateTime[3][0] = 3/26/2013 8:41AM; dateTime[3][1] = 2345;

请告诉我如何用更少的代码解决这个问题。

谢谢。 :)

这是我到目前为止所做的(我还没有对数组进行排序,这里 dateTime 也称为计时器)

function checkConfirm() {
var temp = timers[0][0];
var timeDiv = timers[0][1];
for (var i=0;i<timers.length;i++) {
if (timers[i][0] <= temp) { temp = timers[i][0]; timeDiv = timers[i][1]; }
}
if (timers.length > 0 ){ candidate(temp,timeDiv); }

}

function candidate(x,y) {
setInterval(function () {
var theDate = new Date(x*1000);
var now = new Date();
if ( (now.getFullYear() === theDate.getFullYear()) && (now.getMonth() === theDate.getMonth()) ) {
if ( (now.getDate() === theDate.getDate()) && (now.getHours() === theDate.getHours()) ) {
if ( now.getMinutes() === theDate.getMinutes() && (now.getSeconds() === theDate.getSeconds()) ) { alert("its time"); }
}
}
}, 10);
}

最后,我想在每次当前时间与数组中的时间匹配时提醒用户。这就是我试图解决问题的方法,但这是完全错误的方法。

最佳答案

使用 .sort() 函数,比较日期。

// dateTime is the array we want to sort
dateTime.sort(function(a,b){
// each value in this array is an array
// the 0th position has what we want to sort on

// Date objects are represented as a timestamp when converted to numbers
return a[0] - b[0];
});

演示:http://jsfiddle.net/Ff3pd/

关于javascript - 如何仅对二维数组中的单个列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098065/

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