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

如何用JavaScript基于data-tab生成独立的唯一数组?

实现方法

当然可以实现,以下是基于JavaScript的具体解决方案:

1. 获取目标元素

先选中所有带data-tab属性的隐藏input:

const hiddenInputs = document.querySelectorAll('input[hidden][data-tab]');

2. 初始化分组容器

创建一个空对象,用来存储按data-tab分组后的结果:

const groupedItems = {};

3. 遍历元素完成分组

循环每个input,提取其data属性值,按data-tab归类:

hiddenInputs.forEach(input => {
  const tab = input.dataset.tab;
  const size = input.dataset.size;
  const color = input.dataset.color;
  
  // 若当前tab分组未初始化,先创建空数组
  if (!groupedItems[tab]) {
    groupedItems[tab] = [];
  }
  
  // 将当前元素的属性数据加入对应分组
  groupedItems[tab].push({ size, color });
});

最终结果示例

执行完上述代码后,groupedItems的结构如下:

{
  "Gardenbox Professional": [
    { size: "120x40", color: "Brown" },
    { size: "120x40", color: "Red" }
  ],
  "Gardenbox ECO": [
    { size: "160x40", color: "Brown" },
    { size: "160x40", color: "Red" }
  ]
}

可选:分组去重

如果需要每个分组内的条目唯一(避免重复的size+color组合),可以修改遍历逻辑:

hiddenInputs.forEach(input => {
  const tab = input.dataset.tab;
  const size = input.dataset.size;
  const color = input.dataset.color;
  
  if (!groupedItems[tab]) {
    groupedItems[tab] = [];
  }
  
  // 检查当前分组是否已有相同size和color的条目
  const isDuplicate = groupedItems[tab].some(item => 
    item.size === size && item.color === color
  );
  
  if (!isDuplicate) {
    groupedItems[tab].push({ size, color });
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:24:45