簡體   English   中英

如何在javascript中更改鍵名數組對象?

[英]how to change key name array object in javascript?

我有一個像這樣的任務對象數組:

1-1 [
  {
    t_class_id: 1,
    t_class_subject_id: 1,
    t_class_task_id: 1,
    title: 'Mengerjakan Soal',
    sec_user_id: '4',
    is_submit: 0,
    is_intime: 0,
    total: 1
  },
  {
    t_class_id: 1,
    t_class_subject_id: 1,
    t_class_task_id: 1,
    title: 'Mengerjakan Soal',
    sec_user_id: '8',
    is_submit: 1,
    is_intime: 0,
    total: 1
  },
  {
    t_class_id: 1,
    t_class_subject_id: 1,
    t_class_task_id: 1,
    title: 'Mengerjakan Soal',
    sec_user_id: '3,5,7',
    is_submit: 1,
    is_intime: 1,
    total: 3
  }
]
2-2 [...]
3-4 [...]

如何使用Javascript / ES6 將每個鍵名總計更改為不同的鍵名:

預期結果僅更改總鍵名:

我總是在每個數組中有 3 個對象,我想根據索引將每個對象的鍵更改為noSubmitlateonTime

1-1 [
  {
    t_class_id: 1,
    t_class_subject_id: 1,
    t_class_task_id: 1,
    title: 'Mengerjakan Soal',
    sec_user_id: '4',
    is_submit: 0,
    is_intime: 0,
    noSubmit: 1
  },
  {
    t_class_id: 1,
    t_class_subject_id: 1,
    t_class_task_id: 1,
    title: 'Mengerjakan Soal',
    sec_user_id: '8',
    is_submit: 1,
    is_intime: 0,
    late: 1
  },
  {
    t_class_id: 1,
    t_class_subject_id: 1,
    t_class_task_id: 1,
    title: 'Mengerjakan Soal',
    sec_user_id: '3,5,7',
    is_submit: 1,
    is_intime: 1,
    onTime: 3
  }
]
2-2 [...]
3-4 [...]

我該如何解決問題?

您不能更改 JavaScript 對象屬性的名稱,只能創建一個新屬性並刪除舊屬性。 您可以在現有對象上執行此操作,也可以通過創建新對象來執行此操作。

我不太清楚你所說的改變的規則,但這里有一個簡單的例子:

entry.newName = entry.originalName;
delete entry.originalName;

現場示例:

 const container = { "1-1": [ { originalName: 1, unrelatedProperty: "example1", }, { originalName: 2, unrelatedProperty: "example2", }, { originalName: 3, unrelatedProperty: "example3", }, ], "2-2": [ { originalName: 4, unrelatedProperty: "example4", }, { originalName: 5, unrelatedProperty: "example5", }, { originalName: 6, unrelatedProperty: "example6", }, ] }; for (const array of Object.values(container)) { for (const entry of array) { entry.newName = entry.originalName; delete entry.originalName; } } console.log(container);

或者通過創建新對象:

const {originalName, ...rest} = entry;
const newEntry = {newName: originalName, ...rest};

現場示例:

 const container = { "1-1": [ { originalName: 1, unrelatedProperty: "example1", }, { originalName: 2, unrelatedProperty: "example2", }, { originalName: 3, unrelatedProperty: "example3", }, ], "2-2": [ { originalName: 4, unrelatedProperty: "example4", }, { originalName: 5, unrelatedProperty: "example5", }, { originalName: 6, unrelatedProperty: "example6", }, ] }; for (const [key, array] of Object.entries(container)) { container[key] = array.map(({originalName, ...rest}) => ({newName: originalName, ...rest})); } console.log(container);

暫無
暫無

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

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