簡體   English   中英

在 JavaScript 中分配 object 和嵌套 object 的值

[英]Assign value of object and nested object in JavaScript

所以,基本上,我有這個 object(在 vue data() 中):

...
detail: {
  title: 'I have no idea',
  date: 2020-02-12,
  sender: {
    name: 'John Cenna',
    username: 'john10'
  },
  receipent: {
    name: 'Katleen',
    username: 'katmeow'
  },
  ....
}

現在,我想將它們全部分配為 null (用於驗證過程),但無法分配嵌套的 object (沒有子節點的 object 只需循環即可)。 我該怎么做呢? 謝謝你

遞歸解決方案:

  1. 使用Object.entries()迭代 object 的鍵值條目如下。 請注意, Object.entries()為非對象返回一個空數組。
  2. 如果條目的值已經是nullundefined ,則返回。
  3. 如果條目的值是一個數組,則對每個數組項進行遞歸(轉到步驟 1,將數組項作為新的 object 進行評估)。
  4. 如果條目的值為 object,則在 object 上遞歸。
  5. 否則,將條目的值設置為null

 const data = { detail: { title: 'I have no idea', date: 2020 - 02 - 12, sender: { name: 'John Cenna', username: 'john10' }, receipent: { name: 'Katleen', username: 'katmeow' }, items: [ { id: 100, name: 'Apple' }, { id: 200, name: 'Banana' }, { id: 300, name: 'Orange' }, ] } } function nullify(obj) { // 1 Object.entries(obj).forEach(([k,v]) => { // 2 if (v === null || v === undefined) { return } // 3 if (Array.isArray(v)) { return v.forEach(nullify) } // 4 if (typeof v === 'object') { nullify(obj[k]) } else { // 5 obj[k] = null } }) } nullify(data.detail) console.log('res', data.detail)

暫無
暫無

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

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