如何更改嵌套對像數組中的所有鍵名javascript

出版商

我嵌套了像波紋管這樣的對像數組:

const data = [
  {text: 'node 1'}, 
  {text: 'node 2', chapter_playlist: [{text: 'node 2-1', lesson_playlist: [{text: 'node 3-1'}]}]},
  {text: 'node 3'}, 
  {text: 'node 4', chapter_playlist: [{ text: 'node 4-1' }]}
]

如何將每個嵌套屬性(如chapter_playlistlesson_playlist)重命名為“ children ”?

基本上我想改變有更多孩子的財產的名字,如果沒有孩子那麼就沒有必要改變它。我仍然困惑如何改變它

預期成績

const data = [
  {text: 'node 1'}, 
  {text: 'node 2', children: [{text: 'node 2-1', children: [{text: 'node 3-1'}]}]},
  {text: 'node 3'}, 
  {text: 'node 4', children: [{ text: 'node 4-1' }]}
]
邁克“波馬克斯”張伯倫

有趣的事實:如果您出於某種原因需要遍歷一個對象,JSON.stringify()是您的朋友。

不是因為您想將數據轉換為 JSON 字符串,而是因為它也是一個對象迭代器,可讓您使用替換函數在每個級別執行任意處理

const data = [
  {text: 'node 1'}, 
  {text: 'node 2', chapter_playlist: [{text: 'node 2-1', lesson_playlist: [{text: 'node 3-1'}]}]},
  {text: 'node 3'}, 
  {text: 'node 4', chapter_playlist: [{ text: 'node 4-1' }]}
]

const rewriteList = [`chapter_playlist`, `lesson_playlist`];

function replacer(key, value) {
  // If the value at this depth is an object (but not an iterable
  // like array or Set or Map), then rebind the properties you
  // need rebound, provided they exist:
  if (typeof value === `object` && !value[Symbol.iterator]) {
    rewriteList.forEach(prop => {
      if (value[prop]) {
        // By editing "value", we're directly updating "data".
        value.children = value[prop];
        delete value[prop];
      }
    });
  }
  return value;
}

JSON.stringify(data, replacer);

console.log(data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Javascript 中更新嵌套對像數組中的鍵/值對

如何將嵌套的對像數組轉換為具有特定鍵名的非嵌套對象

如何在對像數組中獲取具有唯一值的鍵?(JavaScript)

如何將具有動態鍵名和嵌套數組的對像數組簡化為更簡單的格式?

在 JavaScript 中通過鍵和嵌套值過濾對像數組

如何強制打字稿檢查對像中的所有鍵是否都存在於數組中,其中所述鍵用作值?

如何對可以有多個新生成的鍵的對像數組中的等效鍵的值求和?

在 JavaScript 中合併兩個具有相同鍵的對像數組

如何在javascript中將嵌套對象轉換為對像數組?

在Javascript中替換嵌套對像中的數組

我如何通過嵌套對像數組創建具有嵌套對像數組的對象

如何在 MongoDB 中推入具有精確鍵值的對象嵌套數組?

如何瀏覽對像數組的所有值

如何使用新鍵值映射新數組中的對像數組

如何將鍵投影到數組中以生成對像數組?

將帶有 Value 的新鍵添加到嵌套對像數組

如何對mongodb文檔中數組內所有對像中存在的特定數字字段求和

如何刪除具有多個數組的對像中的重複名稱?

如何使用javaScript將嵌套的對像數組轉換為一個對像數組?

如何在Javascript中循環沒有索引的對像數組作為字段?

如何在嵌套的對像數組中獲取對象路徑?

如何從對像數組中獲取特定鍵值的總和

如何從現有的對像數組創建嵌套對象的新數組

如何使用打字稿中的自定義鍵將數組轉換為對像數組?

如何從 React 中的嵌套對像數組中提取數據?

javascript將對象轉換為具有鍵值標籤的對像數組

刪除多維數組中所有對像數組中不常見的對象

對具有最大特定鍵值總數的對像數組進行排序

嵌套對像數組的 Javascript 解決方法