本文介绍一个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