javascript - 删除数组中的重复项
问题描述
删除数组中的重复项
- 其中一个函数使用了 JS ES6 的 native 方法
- 有没有更好的方法(兼容性和性能)?
注意:过滤数组中未定义的元素
英语很弱,可能被描述为不准确。>﹏<</p>
谢谢
function delRepeatArray1(arr) {
console.time();
var result = Array.from(new Set(arr));
console.timeEnd();
return result;
}
function delRepeatArray2(arr) {
console.time();
var result = arr.filter(function (em, index, arr) {
return arr.indexOf(em) === index;
});
console.timeEnd();
return result;
}
var arr = ["undefined", "200", 0, -0, 200, undefined, undefined, null, true, null, "true", false, 0, true, 200, false],
result1 = delRepeatArray1(arr),
result2 = delRepeatArray2(arr);
console.log(result1);
console.log(result2);
解决方案
这是从提供的数组中获取唯一值的快速片段:
var arr = ["undefined", "200", 0, -0, 200, undefined, undefined, null, true, null, "true", false, 0, true, 200, false];
var uniqueNames = [];
$.each(arr, function(i, el){
if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});
console.log(uniqueNames);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
推荐阅读
- java - Fedora 27 中的 Java 安装问题
- java - Guava Futures.transform 与“Real” Executor 与 transformAsync 与 DirectExecutor
- android - 即使在用户离开或关闭应用程序后,广告仍会显示
- c# - 尝试从另一个脚本获取变量时使用未分配的局部变量
- javascript - 在 class="A" 的元素中获取 class="B" 的 DOM 元素
- apache - 基于每个路径的 Apache 2.4 超时
- python - 使用多处理池预处理数据
- python - mac上的虚拟环境问题
- linux - 在网络服务器上设置 linux 机器
- go - 查询数据库时如何将雪花数组转换为Golang中的数组