-
慕码人2483693
您可以将 Object.keys 与 map 结合起来,并使用 split 将字符串转换为数组let data = {"[3, company1]":["role_user"], "[4, company2]":["role_admin"] }let keys = Object.keys(data) .map( el => el.replace('[', '') .replace(']', '') .split(',') .map(el => el.trim()) .map(el => isNaN(parseFloat(el)) ? el : parseFloat(el)) )console.log("Keys: ", keys)这是小提琴: https: //jsfiddle.net/to38g6cb/1/
-
MYYA
您想将密钥转换成什么?如果想将其转换为普通数组,则应执行以下操作。const httpResponse = { "[3, company1]": ["role_user"], "[4, company2]": ["role_admin"]};const convertedKeys = Object.keys(httpResponse).map(value => { let keyArray = value.replace("[", "").replace("]", "").split(", "); return [parseInt(keyArray[0]), keyArray[1]];});console.log(convertedKeys);如果以上不是您想要的,请再次改写您的问题。
-
翻翻过去那场雪
您可以使用字符串删除第一个和最后一个slice(1,-1)字符split(/\s*,\s*/逗号,两边可选空格)。然后将第一部分转换为数字并返回数组const input = { "[3, company1]": ["role_user"], "[4, company2]": ["role_admin"]}const output = Object.keys(input).map(k => { const [n, comp] = k.slice(1,-1).split(/\s*,\s*/) return [+n, comp]})console.log(JSON.stringify(output))
-
慕雪6442864
如果该部分已经被引用会更容易company1,这样您就可以使用JSON.parse. 事实上,让我们这样做吧!company1在带有搜索和替换的部分周围加上引号。let key = `[3, company1]`;let obj = JSON.parse(key.replace(/[$A-Z_]\w*/gi, '"$&"'))console.log(obj);注意:我在猜测哪些字符可能是有效的,并带有一些看起来有点像 JavaScript 标识符的字符。 [$A-Z_]\w*由于反序列化歧义,显然不是逗号和右方括号。