国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js數組去重

cartoon / 632人閱讀

數組去重的方式有很多種,現總結一些備以后查漏補缺來用。

對基本數組類型去重:

(1)set 和 array.from()實現

var str,
    strs = ["a", "b", "c", "er", "d", "er", "a", "b", "c"];

function removeRepeat(arr) {
   return  Array.from(new Set(arr))
}
console.log(removeRepeat(strs)) //["a", "b", "c", "er", "d"]

(2) indexOf和forEach()

var str=[],
    strs = ["a", "b", "c", "er", "d", "er", "a", "b", "c"];

function removeRepeat() {
  strs.forEach(v=>{
    if(str.indexOf(v) < 0) str.push(v)
  })
  console.log(str) //["a", "b", "c", "er", "d"]
}

(3)map 和 filter

var str=[],
    strs = ["a", "b", "c", "er", "d", "er", "a", "b", "c"];
function removeRepeat(arr) {
  const unique = new Map()
  return arr.filter(v=>{
    return !unique.has(v) && unique.set(v,1)
  })
}
 console.log(removeRepeat(strs)) //["a", "b", "c", "er", "d"]
延伸1:需要對數組排序去重
var str=[],
    strs = ["a", "b", "c", "er", "d", "er", "a", "b", "c"];

function removeRepeat(arr) {
 let arry = arr.sort()
 return arr.sort().filter((v,index) => {
   return !index || v !== arry[index-1]
 })
}
console.log(removeRepeat(strs))//  ["a", "b", "c", "d", "er"]
延伸2:某一個元素只出現一次

(1)利用filter,indexof,lastIndexOf對基本類型數組去重復元素

var str,
    strs = ["a", "b", "c", "er", "d", "er", "a", "b", "c"];

function removeRepeat() {
    str = strs.filter(function (value, index, array) {
        return array.indexOf(value) === array.lastIndexOf(value);
    })
    console.log(str) //["d"]
}

(2)利用lastIndexOf,splice對基本類型數組去重復元素

var str,
    strs = ["a", "b", "c", "er", "d", "er", "a", "b", "c"];

function removeRepeat() {
    for (var i = 0; i < strs.length; i++) {
        if (i !== strs.lastIndexOf(strs[i])) strs.splice(i, 1);
    }
    console.log(str) //["d"]
}

(1)和(2)的方法大同小異,原理是一樣

延伸3:對數組對象進行去重
var Messages = [
    {
        "timestamp": 1474328370007,
        "message": "hello"
    },
    {
        "timestamp": 1474328302520,
        "message": "how are you"
    },
    {
        "timestamp": 1474328370007,
        "message": "hello"
    },
    {
        "timestamp": 1474328370007,
        "message": "hello"
    }
]

var NoRepeatMessages = [];

function RemoveRepeat(arr) {
    var hashFlag = {}
    arr.forEach((v,index) => {
        if (!hashFlag[v.timestamp]) {
            hashFlag[v.timestamp] = true;
            NoRepeatMessages.push(v);
        }
    });
  console.log(NoRepeatMessages) //[{"timestamp": 1474328370007,"message": "hello"},{ "timestamp": 1474328302520,"message": "how are you"}]
}
RemoveRepeat(Messages)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94851.html

相關文章

  • JS數組去重總結

    摘要:數組去重,一般會在面試的時候才會碰到,要求手寫數組去重方法的代碼。在實際項目中碰到的數組去重,一般都是后臺去處理,很少讓前端處理數組去重。數組去重的方法一利用去重中最常用如果不考慮兼容性,這種去重的方法代碼最少。 數組去重,一般會在面試的時候才會碰到,要求手寫數組去重方法的代碼。如果是被提問到,數組去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看。 在實際項目中碰到的...

    whinc 評論0 收藏0
  • JS數組去重方法小結

    摘要:數組去重看了網上很多數組去重方法,用的比較常見的大概就幾種,今天想自己來做一個總結。還有就是方法返回的數組也是排序后的數組,某些情況下可能不符合要求。 JS數組去重 看了網上很多數組去重方法,用的比較常見的大概就幾種,今天想自己來做一個總結。部分內容參考該博客 1 . 在原數組上操作(基本方法) 思路:利用循環嵌套,判斷數組中每個元素與其后面的元素是否相等,如果相等,就使用spli...

    PascalXie 評論0 收藏0
  • js基本操作-數組去重

    摘要:基本操作數組去重寫在前面數組去重經常出現在前端招聘的筆試題里,比如有數組,請用實現去重函數,使得返回作為筆試題,考點有二正確。基本介紹文章主要是對數組去重的常用方法進行介紹。 js基本操作-數組去重 寫在前面 JavaScript 數組去重經常出現在前端招聘的筆試題里,比如: 有數組 var arr = [a, b, c, 1, 0, c, 1, , 1, 0],請用 JavaScr...

    blastz 評論0 收藏0
  • js基本操作-數組去重

    摘要:基本操作數組去重數組去重的方法臨時數組保存其實這里面還沒考慮到數組里面嵌套數組對象的情況把去重后的結果放在一個臨時數組中對原來數組的元素與臨時數組元素比較臨時數組中不存在這個元素的放入臨時數組。 js基本操作-數組去重 數組去重的方法 1. 臨時數組保存(其實這里面還沒考慮到數組里面嵌套數組/對象的情況) 把去重后的結果放在一個臨時數組中, 對原來數組的元素與臨時數組元素比較, 臨時...

    GeekGhc 評論0 收藏0
  • js數組去重方法總結

    摘要:注方法可以返回某個指定字符串在字符串中首次出現的位置比如首次出現的位置是數組中的第一個,即下標為遍歷數組使用標識符去重聲明一個變量標識排序后遍歷過濾數組思路先給數組排序,這樣相同的項總是相鄰。 假設我們有數組arr,并且聲明新數組hash用來存放去重后的元素: var arr = [23,44,5,2,23,5,1,7,8,7]; //包含重復元素 var hash= [];...

    snowLu 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<