let obj = { "color-1": "1", "color-2": "2", "color-3": "3", "geyao-1": "1", "geyao-2": "2", "geyao-3": "3" } function myFunc(obj) { const newObj = {} console.log(Object.entries(obj),"Object") for (const [key, value] of Object.entries(obj)) { const strList = key.split('-') const groupId = strList.pop() // 拿到最后一个"-"之后的字符 console.log(groupId,"groupId") const keyName = strList.join('') // 最后一个"-"之前的所有字符再加起来(理论上如果只有一个"-"可以直接key.split('-')[0]和key.split('-')[1]) console.log(keyName,"keyName") //如果存在这个不存在 就创建一个对象 否则将当前的值传入这个对象 if (!newObj[groupId]) { newObj[groupId] = {} } newObj[groupId][keyName] = value } console.log(newObj,"newObj") return Object.values(newObj) }
//如果存在这个不存在 就创建一个对象 否则将当前的值传入这个对象 if (!newObj[groupId]) { newObj[groupId] = {} } newObj[groupId][keyName] = value
最后转换为数组对象 通过数据处理
