gpt4 book ai didi

javascript - 短属性名称和长属性名称之间的映射

转载 作者:行者123 更新时间:2023-12-02 22:47:24 25 4
gpt4 key购买 nike

我的 Web 服务返回具有单字母属性名称的对象。因为我想在 JavaScript 代码中使用可读属性,所以我通常会执行与此类似的过程:

$.getJSON('bla').done(res => {
myResult = {
hello: res.h,
world: res.w
};
});

或者

$.getJSON('bla').done(res => {
res.hello = res.h; delete res.h;
res.world = res.w; delete res.w;
myResult = res;
});

另一个问题是,当我想将该对象回调到服务器时,我必须以相反的方式重复该过程。

因此我的问题是,是否存在某种简化的双向映射器方法,或者类似隐式强制转换运算符的方法。

最佳答案

这是一个选项,使用两个相互映射的键数组,以及一个辅助函数,该函数将具有其中一个键集的对象转换为具有另一个键集的对象:

const transformObj = (obj, from, to) => Object.fromEntries(
from.map((fromKey, i) => [to[i], obj[fromKey]])
);

const short = ['a', 'b', 'c'];
const long = ['aaa', 'bbb', 'ccc'];

console.log(transformObj({ a: 'foo', b: 'bar', c: 'baz' }, short, long));

console.log(transformObj({ aaa: 'zzz', bbb: 'yyy', ccc: 'xxx' }, long, short));

也就是说,这感觉像是一个 X/Y 问题。它引入了不必要的复杂性,并且非常短的属性可以说使内容更难以阅读。为了保持一致性,我会考虑让您的后端发送一个稍后不需要转换的对象。

关于javascript - 短属性名称和长属性名称之间的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58336918/

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