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

如何仅用ES5将JS对象中值相同的键归类并拼接为指定格式字符串

ES5实现对象同值键归类拼接方案

实现思路

  1. 先遍历原对象,以值为分组标识,将对应键存入同一数组,完成归类
  2. 遍历归类后的分组数据,按照要求的格式拼接为字符串即可

完整代码

var myObject = {"audi": "gas", "tesla": "electric", "bmw": "electric", "mercedes": "electric"};
// 第一步:按值归类键
var group = {};
Object.keys(myObject).forEach(function(key) {
    var currentVal = myObject[key];
    if (!group[currentVal]) {
        group[currentVal] = [];
    }
    group[currentVal].push(key);
});
// 第二步:拼接目标格式字符串
var resultParts = [];
Object.keys(group).forEach(function(groupVal) {
    resultParts.push(group[groupVal].join(' ') + ': ' + groupVal);
});
var finalResult = resultParts.join('. ');
// 输出验证
console.log(finalResult); // 输出:tesla bmw mercedes: electric. audi: gas

原有代码问题说明

  • Object.values是ES2017才新增的API,不符合ES5语法要求
  • 双重循环逻辑冗余,会重复处理相同的值,没有必要
  • 未做分组存储,直接拼接结果的逻辑错误,同时用到了ES6才支持的计算属性语法,不符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:36:04