JavaScript數組去重

要求:

去除數組中['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b','y','g']中重複的元素。算法

核心算法:

  1. 把舊數組裏面不重複的元素選取出來放到新數組中,重複的元素只保留一個。
  2. 遍歷舊數組,而後拿着舊數組元素去查詢新數組,若是該元素在新數組裏面沒有出現過,則添加到新數組中,不然不添加。
  3. 利用新數組.indexOf(數組元素),若是返回時-1就說明,新數組裏面沒有該元素。

代碼實現:

function unique(arr) {
    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) === -1) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}
var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b', 'y', 'g']);
console.log(demo);

輸出結果:

["c", "a", "z", "x", "b", "y", "g"]
相關文章
相關標籤/搜索