如何使用 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 分享