如何使用 JavaScript 在數組末尾添加元素并去重后返回最后三個元素的逆序列表?

JavaScript 如何實現數組末尾添加元素并去重后返回指定位數的逆序元素?

在編寫 javascript 函數時,經常會遇到需要處理數組的場景。本文將介紹如何編寫一個函數,該函數會向數組末尾添加一個新的元素,并確保該元素在數組中是唯一的。接著,它會返回數組最后三個元素的逆序列表。

根據題主的需求,我們需要實現一個名為 updatelist 的函數。這個函數接受兩個參數:一個是現有的數組 list,另一個是要添加的新元素 newelement。函數的邏輯如下:

  1. 檢查數組中是否存在與新元素所有字段值都相同的元素。
  2. 如果存在這樣的元素,則將其刪除。
  3. 將新元素添加到數組的末尾。
  4. 從數組中截取最后三個元素,并返回它們的逆序列表。

以下是實現該功能的 javascript 代碼:

function updateList(list, newElement) {     // 檢查 list 是否為數組,如果不是則初始化為空數組     if (!Array.isArray(list)) {         list = [];     }      // 定義一個函數,用于比較兩個對象是否完全相同     const isSameObject = (obj1, obj2) => {         return Object.keys(obj1).length === Object.keys(obj2).length &&                Object.keys(obj1).every(key => obj1[key] === obj2[key]);     };      // 查找數組中與新元素完全相同的對象的索引     const index = list.findIndex(item => isSameObject(item, newElement));      // 如果找到相同元素,則刪除它     if (index !== -1) {         list.splice(index, 1);     }      // 將新元素添加到數組末尾     list.push(newElement);      // 截取最后三個元素并返回它們的逆序列表     return list.slice(-3).reverse(); }  // 測試示例1 let list1 = [     { id: 2 },     { id: 3 },     { id: 4 } ];  let newElement1 = { id: 2 };  console.log(updateList(list1, newElement1));  // 輸出: [{id: 4}, {id: 3}, {id: 2}]  // 測試示例2 let list2 = [     { id: 1 },     { id: 2 },     { id: 3 },     { id: 4 } ];  let newElement2 = { id: 3 };  console.log(updateList(list2, newElement2));  // 輸出: [{id: 4}, {id: 1}, {id: 3}]  // 測試示例3 let list3 = [     { id: 1 },     { id: 2 },     { id: 3 },     { id: 4 } ];  let newElement3 = { id: 2 };  console.log(updateList(list3, newElement3));  // 輸出: [{id: 4}, {id: 3}, {id: 2}]

以上代碼通過定義 issameobject 函數來比較兩個對象是否完全相同,然后使用 findindex 方法查找數組中是否存在與新元素完全相同的對象。如果找到,則使用 splice 方法刪除該對象。接著,通過 push 方法將新元素添加到數組末尾,最后使用 slice 和 reverse 方法返回數組最后三個元素的逆序列表。

通過這種方法,我們可以確保數組的元素是唯一的,并且可以按照指定的方式返回數組的部分元素。

立即學習Java免費學習筆記(深入)”;

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享