下面小编就为大家带来一篇 JavaScript 数组去重的两种方法推荐。小编觉得听错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
1、数组去重;
Array 类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法:
方法一:利用 indexOf 方法;
- var aa=[1,3,5,4,3,3,1,4]
- function arr(arr) {
- var result=[]
- for(var i=0; i<arr.length; i++){
- if(result.indexOf(arr[i])==-1){
- result.push(arr[i])
- }
- }
- console.log(result)
- }
- arr(aa)
方法二:
- function unique(arr) {
- var result = [],
- isRepeated;
- for (var i = 0,
- len = arr.length; i < len; i++) {
- isRepeated = false;
- for (var j = 0,
- len = result.length; j < len; j++) {
- if (arr[i] == result[j]) {
- isRepeated = true;
- break;
- }
- }
- if (!isRepeated) {
- result.push(arr[i]);
- }
- }
- return result;
- }
方法二,总体思路是把数组元素逐个搬运到另一个数组,搬运的过程中检查这个元素是否有重复,如果有就直接丢掉。从嵌套循环就可以看出,这种方法效率极低。我们可以用一个 hashtable 的结构记录已有的元素,这样就可以避免内层循环。恰好,在 Javascript 中实现 hashtable 是极为简单的,改进如下:
- function unique(arr) {
- var result = [],
- hash = {};
- for (var i = 0,
- elem; (elem = arr[i]) != null; i++) {
- if (!hash[elem]) {
- result.push(elem);
- hash[elem] = true;
- }
- }
- return result;
- }
以上这篇 JavaScript 数组去重的两种方法推荐就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0218/266412.html