簡體   English   中英

如何更改 javascript 中嵌套的 object 的鍵值

[英]How do i change the value of a key of a nested object in javascript

我有一個 object 變量,帶有這樣的嵌套鍵

const obj = {
  kitchen: {
    painting: 100,
    piano: 1000,
    signature: "",
  },
  bathroom: {
    stereo: 220,
    signature: "",
  },
  signature: "",
};

我想創建一個 function 來更改鍵“簽名”的值,在根對象和任何嵌套的 object 中都有一個名稱,它有一個鍵“簽名”。

所以:

function addSignature( obj , name){
}

回報

newObj = {
  kitchen: {
    painting: 100,
    piano: 1000,
    signature: name,
  },
  bathroom: {
    stereo: 220,
    signature: name,
  },
  signature: name,
};

我剛做了這個並且它有效但我不知道它是否太“hacky”

function addSignature(obj, name) {
  if (obj.signature !== undefined) {
    obj.signature = name;
  }
  Object.keys(obj).forEach((key) => {
    if (typeof obj[key] === "object") {
      addSignature(obj[key], name);
    }
    else if (obj[key].signature !== undefined) {
      obj[key].signature = name;
    }
  });
  
  return obj;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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