JS面试题:从数组中删除重复项

我正在为初级前端开发人员出常见的面试问题。一个常见问题是如何从 JavaScript 数组中删除重复项。

JS面试题:从数组中删除重复项

假设是使用以下数组:

const withDuplicates = ["dog", "cat", "dog", "cow", "dog", "cat"]

为了保持数组里的值唯一,我们可以这么做:

const uniqueValues = [...new Set(withDuplicates)]
// it will return ["dog", "cat", "cow"]

它只适用于数值,不适用于对象。

Set 是一种 Javascript 数据结构,其主要目的是作为不可重复数据的容器。

通过使用解构数组初始化 Set,我们传递实际值,Set 将自动删除重复项。最后,我们通过把它包装在方括号中将其转换回数组。

Set 是在 2015 年由 ES6 版本的 Javascript 添加的。

不使用 ES6 Set,使用原先解决方案

在没有ES6 Set的时候,我们只能使用以下代码来执行此操作:

function remove_duplicates(arr) {
    var obj = {};
    var ret_arr = [];
    for (var i = 0; i < arr.length; i++) {
        obj[arr[i]] = true;
    }
    for (var key in obj) {
        ret_arr.push(key);
    }
    return ret_arr;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 ttt5cn@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论