本文介紹一個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