首页 > 代码库 > 数组去重

数组去重

题目:

【JS排序】
var str = "1245242"; //这是数组

要求从出现次数多到少排序
示例结果:2:3,4:2,1:1,5:1
【2出现3次,4出现2次...】

 

答案:

    // 1

              var arr = [1,2,3,4,4,5,6,7,8,8,8,9,0];

              function unique(arr) {

                     var tmp = new Array();

                     for (var i in arr) {

                            if (tmp.indexOf(arr[i]) == -1) {

                                   tmp.push(arr[i]);

                            }

                     }

                     return tmp;

                     console.log(tmp);

              }

             

              // 2

              var str = ‘1245242‘;

              var array = str.split(‘‘);

              var filter = [];

              var result = [];

              var get = function(str,tar,arr,tmp){   

                  if(str.indexOf(tar)>=0){

                      tmp = str.slice(str.indexOf(tar)+1);

                      arr.push(tar);

                      get(tmp,tar,arr,tmp);

                  }

                  return arr;

              }

              for(i in array){

                  var elm = [];

                  var tmp;

                  var fstr = filter.join();

                  if(fstr.indexOf(array[i])>=0)

                      continue;

                  else{

                      var tmp_arr = get(str,array[i],elm,tmp);

                      result.push(tmp_arr.length+‘:‘+tmp_arr[0]);

                      filter.push(array[i]);

                  }

              }

              result.sort();

              result.reverse();

              for(index in result){

                  var show = result[index].split(‘:‘);

                  document.write(index==0?show[1]+‘出现‘+show[0]+‘次‘:‘,‘+show[1]+‘出现‘+show[0]+‘次‘);

              }

             

 

              // 3

              Array.prototype.unique = function () {

                     var newArr = [this[0]];

                     for (var i = 0, len = this.length; i < len; i++) {

                            var repeat = false;

                            for (var j = 0, len2 = newArr.length; j < len2; j++) {

                                   if (this[i] == newArr[j]) {

                                          repeat = true;

                                          break;

                                   }

                            }

                            if (!repeat) {

                                   newArr.push(this[i]);

                            }

                     }

                     return newArr;

              };

              var arr = [1,2,3,4,5,6,7,1,2,3,4];

              alert(arr.unique(arr));

 

              // 4

              Array.prototype.unique2 = function(argument) {

                     this.sort();

                     var newArr = [this[0]];

                     for (var i = 0, len2 = this.length; i < len2; i++) {

                            if (this[i] !== newArr[newArr.length - 1]) {

                                   newArr.push(this[i]);

                            }

                     }

                     return newArr;

              };

              var array2 = [‘b‘, ‘b‘, ‘v‘, ‘n‘];

              alert(array2.unique2());

             

             

              // 5

              Array.prototype.unique3 = function () {

                     var res = [];

                     var json = {};

                     for (var i = 0; i < this.length; i++) {

                            if (!json[this[i]]) {

                                   res.push(this[i]);

                                   json[this[i]] = 1;

                            }

                     }

                     return res;

              }

              var array3 = [‘b‘, ‘b‘, ‘v‘, ‘n‘];

              alert(array3.unique3());

数组去重