如何将JavaScript日期数组转换为相邻键值对对象数组?
解决方案:将日期数组转换为相邻键值对数组
你可以通过截取原数组的前n-1个元素,再结合map方法实现需求,代码如下:
let range = [ '2022-11-19', '2022-11-26', '2022-12-03', '2022-12-10', '2022-12-17', '2022-12-19' ]; let ranger = range.slice(0, -1).map((date, index) => { return { [date]: range[index + 1] }; });
思路说明
range.slice(0, -1)会截取原数组中除最后一个元素外的所有元素,得到长度为5的数组,和目标结果的长度匹配。- 在
map回调中,利用动态对象键语法{ [date]: ... },将当前元素作为键,原数组中后一个位置的元素作为值,生成每个键值对对象。
如果更倾向于基础循环写法,也可以用for循环实现:
let ranger = []; for (let i = 0; i < range.length - 1; i++) { ranger.push({ [range[i]]: range[i + 1] }); }
直接对原数组使用map会生成多余的元素(最后一个元素没有后续日期,会得到undefined值),所以需要先截断原数组或者在循环中控制遍历范围。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

