如何使用 JavaScript 向數組末尾添加元素并去重,然后逆序返回指定數量的元素?

如何使用 JavaScript 向數組末尾添加元素并去重,然后逆序返回指定數量的元素?

本文介紹一個JavaScript函數,實現向數組末尾添加元素、去除重復元素,并逆序返回指定數量元素的功能。

以下是一些測試用例:

// 測試用例1 let list1 = [     { id: 2 },     { id: 3 },     { id: 4 } ]; let newelement1 = { id: 2 }; console.log(updateList(list1, newelement1)); // 預期輸出: [{id: 2}, {id: 3}, {id: 4}]  // 測試用例2 let list2 = [     { id: 1 },     { id: 2 },     { id: 3 },     { id: 4 } ]; let newelement2 = { id: 3 }; console.log(updateList(list2, newelement2)); // 預期輸出: [{id: 3}, {id: 2}, {id: 1}]  // 測試用例3 let list3 = [     { id: 1 },     { id: 2 },     { id: 3 },     { id: 4 } ]; let newelement3 = { id: 5 }; console.log(updateList(list3, newelement3)); // 預期輸出: [{id: 5}, {id: 4}, {id: 3}]

實現代碼如下:

function updateList(list, newElement) {     // 處理非數組輸入     if (!Array.isArray(list)) {         list = [];     }      // 對象比較函數     const isEqual = (a, b) => json.stringify(a) === JSON.stringify(b);      // 查找并移除重復元素     list = list.filter(item => !isEqual(item, newElement));      // 添加新元素     list.push(newElement);      // 逆序返回后三個元素     return list.slice(-3).reverse(); }

該函數首先檢查輸入是否為數組,如果不是則初始化為空數組。然后使用JSON.stringify進行對象比較,找到并移除與新元素相同的元素。接著將新元素添加到數組末尾,最后截取數組后三個元素并逆序返回。 此方法比使用Object.keys和every方法更高效簡潔。 該函數確保了即使輸入是空數組或非數組,也能正常運行,并處理了對象比較的問題,使其更加健壯。

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

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