gpt4 book ai didi

Javascript - 从数组中按顺序排列生日

转载 作者:行者123 更新时间:2023-11-30 10:39:29 26 4
gpt4 key购买 nike

我在下面有这个 Javascript,我知道可能有更好的方法来完成我所做的事情,所以如果你想分享更好的方法,请分享,我一定会使用它。

var Apeople = ["bob", "joe", "jane", "mike", "henry", "alex"];
var Abdays = ["08/20", "01/23", "04/19", "08/16", "01/08", "04/02"];

Apeople 和 Abdays 排在一起,所以 Jane 的生日是 04/19。

我知道我不应该使用 eval() 所以如果你知道更好的方法请告诉我。

var mnths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
for(i=0; i<mnths.length; i++){
eval("var "+mnths[i]+" = []");
}

for(i=0; i<Abdays.length; i++){
var ab = Abdays[i];
if(ab.substring(0,1) == "0"){
var mn = ab.substring(1,2); //month number without 0 before it
} else {
var mn = ab.substring(0,2); //month number if 11 or 12
}
eval(""+mnths[mn-1]+".push(i)");
}

现在我有 January=[1,4] April=[2,5] August=[0,3]。我这样做是为了找出谁的名字与生日相符。

例如,Apeople[January[0]] 将是 joe,Abdays[January[0]] 将是 01/23。

我需要做的是将每个月的条目按生日排在第一位的顺序排列。 Abdays[January[0]] 是 01/23 但 Abdays[January[1]] 是 01/08 所以它们应该交换。

当我输入这个时,我在想我可能应该使用 JSON。

所以我需要帮助的是将生日排序,同时仍然能够分辨哪个生日属于哪个名字,同时可能找到一种更好的方法来编写此代码。

最佳答案

另一种方法。这利用了自定义排序功能。


var birthdays = [];

​birthdays[0] = { "name": "Bob", "month": 8, "day": 1 };
birthdays[1] = { "name": "John", "month": 4, "day": 2 };
birthdays[2] = { "name": "Jane", "month": 1, "day": 15 };

birthdays.sort( function( a, b ) {

if(a["month"] < b["month"] ) return -1;
if(a["month"] > b["month"] ) return 1;
if( a["day"] < b["day"] ) return -1;
if( a["day"] > b["day"] ) return 1;

return 0; //they are the same
});

额外的好处是您可以修改排序功能以满足您的需要。

关于Javascript - 从数组中按顺序排列生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11957406/

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