gpt4 book ai didi

javascript - 检查数组中的每一项是否是今天的日期?

转载 作者:行者123 更新时间:2023-11-30 13:49:46 26 4
gpt4 key购买 nike

我有一个对象数组。每个对象都有一个日期属性。我正在尝试创建一个函数,如果项目的日期等于今天的日期,我将每个项目附加到一个新数组。

另外,我不确定 for 循环是否是最有效的方法,尽管这个列表永远不会超过几百个项目。

我的功能:

todayListItems() {
const todayItems = [];
const todayDate = moment(new Date()).format('dd-mm-YYYY');
for (let i = 0; i < myArray.length; i++) {
const itemDate = moment(myArray[i].date).format('dd-mm-YYYY');
if (itemDate === todayDate) {
todayItems.push(myArray[i]);
}
}
console.log(todayItems);
return todayItems;
}

此函数会运行,但即使有日期为今天的项目,也不会将任何内容推送到数组。

最佳答案

您可以使用 Array.filter()moment#isSame使用第二个参数将粒度限制为毫秒以外的单位:

function todayListItems(arr) {
return arr.filter(obj => moment().isSame(obj.date, 'day'));
}

todayListItems(myArray);

演示:

function todayListItems(arr) {
return arr.filter(obj => moment().isSame(obj.date, 'day'));
}

const myArray = [
{ date: '2019-10-14T12:10:00Z'},
{ date: new Date() },
{ date: moment().minutes(120).format('YYYY-MM-DDTHH:mm:ss') },
{ date: new Date('2019-10-23T01:00:00') },
];

console.log(todayListItems(myArray));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

关于javascript - 检查数组中的每一项是否是今天的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58501449/

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