js中如何去除list中的重复数据

JavaScript08

js中如何去除list中的重复数据,第1张

最笨的方法:

var list = [1, 2, 3, 6, 7, 8, 9, 1, 2, 3, 6]//有重复的数组

var obj = {}//用于标记字符串

var arr = []//去掉重复后的数组

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

    var s = list[i]

    if (obj[s]) continue//如果字符串已经存在就跳过

    else {

        obj[s] = s//加入标记对象中

        arr.push(s)//结果放入新数组中

    }

}

当jquery中有封装好的去重复方法,还有其他第三方js插件也存在去重复的方法。

1,对象数组去重

2,用js实现将二维数组格式化转换成树状数组

3,将树结构数据转换为一维数组

4, 数组去重

function clear(arr) {

// 1 如何获取数组中每一个元素出现的次数

var o = {}// 1.1 记录数组中元素出现的次数

for (var i = 0i <arr.lengthi++) {

var item = arr[i]// 数组中的每一个元素

// o[item] = 1

// 1.2 判断o对象是否有当前遍历到的属性

if (o[item]) {

// 如果o[item] 存在,说明次数不为1

o[item]++

} else {

// 如果o[item] 不存在,说明是第一次出现

o[item] = 1

}

}

// console.log(o)

// 2 生成一个新的数组,存储不重复的元素

var newArray = []

// 2.1 遍历对象o中的所有属性

for (var key in o) {

// 2.2 判断o对象中当前属性的值是否为 1 如果为1 说明不重复直接放到新数组中

if (o[key] === 1) {

newArray.push(key)

} else {

// o对象中当前属性 次数不为1 ,说明有重复的,如果有重复的话,只存储一次

// 判断当前的newArray数组中是否已经有该元素

if (newArray.indexOf(key) === -1) {

newArray.push(key)

}

}

}

return newArray

}

var array = ['c', 'a', 'z', 'a', 'x', 'a']

var newArray = clear(array)

console.log(newArray)