簡體   English   中英

排序和替換對象鍵值 - Javascript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM