gpt4 book ai didi

javascript - forEach 意外标记向现有数组添加新属性

转载 作者:太空宇宙 更新时间:2023-11-04 15:37:53 25 4
gpt4 key购买 nike

我想添加一个新的proeprrty调用total_days使用date_from和date_to计算,但我的forEach出现了预期的 token 错误。

let applicants = [{
date_from: '2017-05-05',
date_to: '2017-05-10'
},{
date_from: '2017-05-08',
date_to: '2017-05-12'
}]

calculateDays = applicants.forEach(obj =>
applicants['total_days'] = (obj.date_from).diff(obj.date_to, 'days')+1;
)

不知道这里出了什么问题。

最佳答案

您没有明确说明您想要什么,但我尝试通过您的代码进行猜测。

我的猜测是,您想要从旧的申请人数组创建一个新的申请人数组,但在新数组中,您想要向该数组中的每个对象添加一个属性,该属性是两个日期的天数差异.

为此,您可以使用 Array.prototype.map将数组中的每个项目映射到新数组。

我也在使用Object.assign to clone each object这样原始数组就不会被修改。

我还将日期字符串解析为数字。解析的数字是自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的毫秒数。如果我将两个数字的差值除以millisecondsInADay,那么我将得到中间经过了多少天。

然后将结果存储到新数组 calculateDays 中。

如果您需要更多说明,请告诉我。

let applicants = [{
date_from: '2017-05-05',
date_to: '2017-05-10'
}, {
date_from: '2017-05-08',
date_to: '2017-05-12'
}]

const millisecondsInADay = 1000 * 60 * 60 * 24;

const calculateDays = applicants.map(obj => Object.assign({}, obj, {
total_days: ((
Date.parse(obj.date_to) - Date.parse(obj.date_from)
) / millisecondsInADay) + ' days'
}));

console.log(calculateDays);

关于javascript - forEach 意外标记向现有数组添加新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44150538/

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