詳解JavaScript數(shù)組和字符串中去除重復(fù)值的方法

字號:


    這篇文章主要介紹了詳解JavaScript數(shù)組和字符串中去除重復(fù)值的方法,及利用各種限制條件對數(shù)組和字符串進(jìn)行過濾,需要的朋友可以參考下
    原理在代碼中表現(xiàn)得非常清晰,我們直接來看代碼例子:
    var ages = array.map(function(obj) { return obj.age; }); 
    ages = ages.filter(function(v,i) { return ages.indexOf(v) == i; }); 
    console.log(ages); //=> [17, 35] 
    function isBigEnough(element) { 
     return element >= 10; 
    } 
    var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); 
    // filtered is [12, 130, 44] 
    function onlyUnique(value, index, self) {  
      return self.indexOf(value) === index; 
    } 
    // usage example: 
    var a = ['a', 1, 'a', 2, '1']; 
    var unique = a.filter( onlyUnique ); // returns ['a', 1, 2, '1'] 
    比較好使的Function(不兼容IE7)
    function unique(array){ 
      return array.filter(function(el, index, arr) { 
        return index == arr.indexOf(el); 
      }); 
    } 
    比較好使的Function(兼容IE7)
    //去除數(shù)組中重復(fù)值 
    function getNoRepeat(s) { 
      return s.sort().join(",,").replace(/(,|^)([^,]+)(,,\2)+(,|$)/g,"$1$2$4").replace(/,,+/g,",").replace(/,$/,"").split(","); 
    } 
    var arr = ["北京", "上海", "天津", "武漢", "上海", "天津", "武漢", "北京", "上海", "天津", "武漢", "天津", "武漢", "天津", "武漢", "天津", "武漢", 
    "北京", "上海", "天津", "武漢", "上海", "天津", "武漢", "北京", "上海", "天津", "武漢", "天津", "武漢", "天津", "武漢", "天津", "武漢", 
    "北京", "上海", "天津", "武漢", "上海", "天津", "武漢", "北京", "上海", "天津", "武漢", "天津", "武漢", "天津", "武漢", "天津", "武漢"]; 
    arr = getNoRepeat(arr); 
    alert(arr.length);// 4 
    alert(arr.toString()); // "北京", "上海", "天津", "武漢" 
    利用map原理
    var arr = ["北京", "上海", "天津", "武漢", "上海", "天津", "武漢", "北京", "上海", "天津", "武漢", "天津", "武漢", "天津", "武漢", "天津", "武漢", 
    "北京", "上海", "天津", "武漢", "上海", "天津", "武漢", "北京", "上海", "天津", "武漢", "天津", "武漢", "天津", "武漢", "天津", "武漢", 
    "北京", "上海", "天津", "武漢", "上海", "天津", "武漢", "北京", "上海", "天津", "武漢", "天津", "武漢", "天津", "武漢", "天津", "武漢"]; 
    var json = {}; 
    for(var i = 0; i < arr.length; i++){ 
      json[arr[i]] = arr[i]; 
    } 
    arr = new Array(); 
    for(var key in json){ 
      arr.push(key); 
    } 
    alert(arr.toString()); 
    // "北京", "上海", "天津", "武漢"