You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何组合月份数组与值对象生成指定结构的新数组

JavaScript 按日期匹配生成目标数组实现方案

给定数据源

// 全量月份数组
var a = [
  "2022-01",
  "2022-02",
  "2022-03",
  "2022-04",
  "2022-05",
  "2022-06",
  "2022-07",
  "2022-08",
  "2022-09",
  "2022-10",
  "2022-11",
  "2022-12"
]

// 存在有效数值的日期键值对
var b = {
  "2022-05": 44922,
  "2022-06": 25
}

实现代码

用数组原生的map方法遍历全量月份数组即可,逻辑和原数组顺序完全对齐,不会打乱排序,对新手非常友好:

var c = a.map(function(date) {
  return {
    date: date,
    // 匹配到对应日期的值就用原值,没匹配到返回空字符串
    value: b.hasOwnProperty(date) ? b[date] : ''
  }
})

逻辑说明

  • map是数组自带的遍历方法,会逐一遍历数组a中的每一个日期项,每处理完一项就返回一个新的对象,最终组合成和原数组长度、顺序完全一致的新数组
  • hasOwnProperty用来判断对象b中是否存在当前日期的键,避免取到对象原型链上的意外值;三元表达式会根据判断结果选择返回匹配到的数值,还是空字符串
  • 如果你使用的是支持ES2020及以上标准的运行环境,也可以用更简洁的箭头函数+空值合并运算符写法:
const c = a.map(date => ({date, value: b[date] ?? ''}))

运行上述代码后输出的c和你给出的预期结果完全一致。


内容的提问来源于stack exchange,提问作者Manish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 00:31:07