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

如何在JavaScript数组映射中按自定义格式指定元素重复规则

这个需求完全可以实现,我们可以通过动态追踪当前名称的使用次数,匹配format规则完成映射:

let names = [
  "chair",
  "table",
  "door",
  "window",
  "glass",
  "wine",
  "car",
  "keys",
  "dream",
  "keyboard",
  "vodka",
  "pepsi",
  "bag",
  "ikea",
  "mercedes",
  "soprano"
];
let format = [3, 3, 1, 5, 4, 4, 3, 5, 13, 10, 3, 5, 5, 2, 2, 10];
let dates = [
  "2021-10-04T04:00:00.000Z",
  "2021-10-05T04:00:00.000Z",
  // 此处省略你原有的全部dates数组内容
  "2022-01-18T04:00:00.000Z"
];

// 初始化状态追踪变量
let currentNameIdx = 0; // 当前使用的names数组索引
let usedCount = 0; // 当前名称已使用次数
let currentMaxCount = format[currentNameIdx]; // 当前名称最多可使用次数

const app_multiple = dates.map(date => {
  // 当当前名称使用次数达到上限时,切换到下一个名称
  if (usedCount >= currentMaxCount) {
    currentNameIdx++;
    usedCount = 0;
    currentMaxCount = format[currentNameIdx];
  }
  const res = {
    text: `LR${date}: ${names[currentNameIdx]}`
  };
  usedCount++;
  return res;
});

console.log(app_multiple);

说明

代码输出结构和你给出的示例完全一致,前3项对应chair,接下来3项对应table,以此类推完全匹配format规则。本场景下format数组总和为78,和dates数组长度完全一致,不会出现索引越界问题,如果后续调整数据可提前做长度校验避免异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:09:02