gpt4 book ai didi

javascript - 将js对象转换为字符串映射(与通常的字符串到对象相反)

转载 作者:行者123 更新时间:2023-12-03 03:57:34 24 4
gpt4 key购买 nike

我知道有很多方法可以获取点分隔的字符串并将其映射到 js 对象,并且这里有数百个问题及其答案。

但我需要做相反的事情:

要转换此:

let object = {
parts: {
x: {
create: () => {
alert(321);
},
update: () => {
alert(321);
}
},
y: {
create: () => {
alert(321);
},
update: () => {
alert(321);
}
}
}
}

对此:

{
'parts.x.create': () => {
alert(321);
},
'parts.x.update': () => {
alert(321);
},
'parts.y.create': () => {
alert(321);
},
'parts.y.update': () => {
alert(321);
}
}

当我开始为此编写代码时,我觉得我开始重新发明轮子。以前有其他人做过或见过这个吗?

最佳答案

这应该可以解决问题:

let object = {
parts: {
x: {
create: () => {
alert(321);
},
update: () => {
alert(321);
}
},
y: {
create: () => {
alert(321);
},
update: () => {
alert(321);
}
}
}
};

let convert = (value, keys = '', obj = {}) => {
if (typeof value === 'object') {
for (let index in value) {
convert(value[index], (keys && keys + '.') + index, obj);
}
} else {
obj[keys] = value;
}
return obj;
}

let newObject = convert(object);
console.log(newObject);

关于javascript - 将js对象转换为字符串映射(与通常的字符串到对象相反),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44870406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com