[英]Sorting and replace object key value - Javascript
我有一個看起來像這樣的有效載荷:
{ key: 1 }
我怎樣才能真正將此有效載荷替換為如下所示的內容?
{ "key.something": { anotherKey: "abc" } }
我用來替換有效載荷的舊代碼看起來像這樣。
let a = { ...payload };
if (lodash.isEqual(a, { key: 1 })) {
a = {
"key.something": { anotherKey: "abc" }
};
return a;
但我認為我目前使用的方法不夠有效,因為后面的 if 太多了。 那么我怎樣才能真正獲得鍵值,然后根據鍵值對其進行排序,然后像上面一樣替換它呢?
謝謝幫忙🙏🏻
如果要根據有效負載返回值,只需創建一個包含要替換的值和替換值的二維數組並循環遍歷它
let a = {... payload};
let combinations = [
[{key: 1}, { "key.something": { anotherKey: "abc" } }],
// some more combinations
];
combinations.forEach(e => {
if (lodash.isEqual(a, e[0])) {
a = e[1];
break;
}
})
return a;
告訴我我是否誤解了這個問題,但如果有效載荷的key
等於1
返回(替換)有效載荷
{ "key.something": { anotherKey: "abc" } }
如果是這樣,您可以簡單地執行以下操作:
function transformPayload(payload, searchKey, searchVal){
if(payload[searchKey]){
if(payload[searchKey] === searchVal){
return {
'key.something': { anotherKey: "abc" }
}
}
}
else throw new Error(`payload does not have the key: ${searchKey}`);
}
然后調用這個函數:
const updatedPayload = transformPayload(payload, 'key', 1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.