gpt4 book ai didi

javascript - 什么是将两个对象解构为一个对象并连接特定键的好方法?

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

给定两个具有不同但已知键的对象(可能已设置也可能未设置),使用两者的特定键映射将它们组合成一个对象的好方法是什么?

例如,obj1 可以具有键 itemAitemBitemC。另一个 obj2 可以具有键 item_aitem_bitem_c,并且优先。这些键分别引用相同的最终键 abc

这是我想出来的,但感觉不必要的复杂。

// Given these objects:
const obj1 = { itemA: 1, itemB: 2, itemC: undefined }
const obj2 = { item_a: undefined, item_b: 20, item_c: 30 }

// Desired result: { a: 1, b: 20, c: 30 }

const filter = obj => Object.fromEntries(
Object.entries(obj).filter(entry => entry[1])
)

const serialized1 = (object =>
({ itemA:a, itemB:b, itemC:c } = object)
&& filter({a, b, c}))(obj1)
const serialized2 = (object =>
({ item_a:a, item_b:b, item_c:c } = object)
&& filter({a, b, c}))(obj2)
const finalObject = { ...serialized1, ...serialized2 }

console.log(finalObject)
// { a: 1, b: 20, c: 30 }

我大致尝试为每个对象创建一个键映射,其中外键映射到我的本地键,然后合并。

<小时/>

注意:提到的键名只是示例。实际上,它可以是任意的,例如将 im-dimensionsimg-res 之一存储在名为 size 的键中。

最佳答案

使用 Stringify 和 Parse,我们可以实现这一点

const obj1 = { itemA: 1, itemB: 2 };
const obj2 = { item_b: 20, item_c: 30 };
let format=(obj)=>{
return JSON.parse(JSON.stringify(obj).toLowerCase().replace(/\"(\w*)([a-c]{1}\":)/g,"\"$2"));
}
let obj3={...format(obj1),...format(obj2)}
console.log(obj3);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 什么是将两个对象解构为一个对象并连接特定键的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61017563/

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