登录
首页 >  文章 >  前端

JavaScript数组末尾加元素去重并逆序取指定数量

时间:2025-04-04 12:25:32 273浏览 收藏

本文介绍一个高效的JavaScript函数`updateList`,实现数组元素的增删改查及逆序排序功能。该函数能够向数组末尾添加新元素,自动去除重复元素(基于JSON.stringify的深度比较),并逆序返回指定数量(默认为3)的元素。函数健壮性高,能处理空数组或非数组输入,并提供清晰的代码实现和测试用例,有效解决JavaScript数组操作中的常见问题。 学习此方法,轻松掌握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.keysevery方法更高效简洁。 该函数确保了即使输入是空数组或非数组,也能正常运行,并处理了对象比较的问题,使其更加健壮。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>