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

合并JavaScript对象非空值并生成指定格式字符串数组

解决方案

针对给定的JavaScript对象,我们可以通过以下步骤实现需求:

  1. 按属性键末尾的数字对值进行分组,确保配对的属性(如firstItem1和firstItemNumber1)归为同一组
  2. 过滤掉每组中的空字符串值
  3. 将每组剩余的非空值拼接为单个字符串,最终收集成数组

代码实现

const obj = {
  firstItem1: "Main",
  secondItem2: "Something",
  thirdItem3: "",
  firstItemNumber1: "test",
  secondItemNumber2: "bx",
  thirdItemNumber3: ""    
};

// 初始化分组容器
const groupedValues = {};

// 遍历对象的键值对进行分组
Object.entries(obj).forEach(([key, value]) => {
  // 提取键末尾的数字作为分组标识
  const numberMatch = key.match(/\d+$/);
  if (numberMatch) {
    const groupId = numberMatch[0];
    // 若分组不存在则创建新数组
    if (!groupedValues[groupId]) {
      groupedValues[groupId] = [];
    }
    // 仅将非空字符串加入分组
    if (value !== "") {
      groupedValues[groupId].push(value);
    }
  }
});

// 生成最终结果:拼接分组内容并过滤空分组
const finalResult = Object.values(groupedValues)
  .filter(group => group.length > 0)
  .map(group => group.join(" "));

console.log(finalResult); // 输出: ["Main test", "Something bx"]

逻辑说明

  • 使用Object.entries()将对象转换为键值对数组,方便遍历处理
  • 通过正则表达式/\d+$/匹配键末尾的数字,以此作为配对属性的分组依据
  • 遍历过程中跳过空字符串,避免无效内容干扰结果
  • 最后将每个有效分组的内容用空格拼接,过滤掉无内容的分组,得到目标数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:15:48