合并JavaScript对象非空值并生成指定格式字符串数组
解决方案
针对给定的JavaScript对象,我们可以通过以下步骤实现需求:
- 按属性键末尾的数字对值进行分组,确保配对的属性(如
firstItem1和firstItemNumber1)归为同一组 - 过滤掉每组中的空字符串值
- 将每组剩余的非空值拼接为单个字符串,最终收集成数组
代码实现
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
相关产品推荐
相关产品推荐

