js 数组去重
2017-03-21 22:24
267 查看
/** * Created by 26223 on 2017/3/12. */ function unique(array) { let list = []; for (let i = 0; i < array.length; i++) { if (list.indexOf(array[i]) === -1) { list.push(array[i]); } } return list; } /** * IE8不支持indexOf */ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (item) { let result = -1; let a_item = null; if (this.length === 0) { return result; } for (let i = 0; i < this.length; i++) { a_item = this[i]; if (a_item === item) { result = 1; break; } } return result; } } /** * 对象键值方法 * 新建一个js对象和数组,对传入的数组进行遍历,判断值是否是对象的属性,如果不是则设置为对象的属性,并放入新建的数组 * @param array */ function unique2(array) { let param = {}; let list = []; let val, type; for (let i = 0; i < array.length; i++) { val = array[i]; type = typeof val; if (!param[val]) { param[val] = [type]; list.push(val); } else if (param[val].indexOf(type) < 0) { param[val].push(type); list.push(val); } } return list; } /** * 先排序再去重 * 对相邻的元素进行比较 * @param array */ function uniqueSort(array) { array.sort(); let list = [array[0]]; for (let i = 0; i < array.length; i++) { if (array[i] !== list[list.length - 1]) { list.push(array[i]); } } return list; } /** * 双层遍历 找出最右边没有的重复的值加入到新的数组中 * @param array * @returns {Array} */ function unique3(array) { let list = []; for (let i = 0; i < array.length; i++) { for (let j = i + 1; j < i; j++) { if (array[i] === array[j]) { j = ++i; } } list.push(array[i]); } return list; }
相关文章推荐
- 用js数组联动下拉框
- js-Javascript数组
- js数组删除数组元素!-收集
- JS - 动态创建2维数组Array (例子源码)
- js中从后台向前台调用数据(数组)后 如何遍历这个数组?
- JS数组方法汇总
- JS数组对象参考
- javascript(js)数组操作
- js删除数组里重复的元数
- [收藏]如何把客户端的 JS 数组传到服务器端
- js 中数组新的妙用
- 用Js数组来实现下拉列表连动无刷新
- 用js实现随机返回数组的一个元素
- js自带函数备忘 数组
- 2006第一个工作日--js删除数组某个元素[2006-02-05]
- js数组 sort方法的分析 转自NorthSnow HOME
- JS对象和数组大全
- js入门系列演示·数组
- JS数组方法汇总
- [导入]JS对象与数组参考大全