摘要:否则存入结果数组给本地对象增加一个原型方法,它用于删除数组条目中重复的条目可能有多个,返回值是一个包含被删除的重复条目的新数组下面求中最大值正确的是为对象添加一个去除重复项的方法,得到去重后的数组
深度克隆
function clone(Obj) { var buf; if (Obj instanceof Array) { var buf = [];//创建一个空数组 var i = Obj.length; while (i--) { buf[i] = clone(Obj[i]); } return buf; } else if (Obj instanceof Object) { buf = {};//创建一个空对象 for (var k in Obj) { buf[k] = clone(Obj[k]); } return buf; } else { return Obj; } }
数组去重-方法一
Array.prototype.unique1 = function () { var tempArr = [];// 一个新的临时数组 for (var i = 0; i < this.length; i++) {//遍历当前数组 //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n.indexOf(this[i]) == -1) { n.push(this[i]); } return tempArr; } };
数组去重-方法二
Array.prototype.unique2 = function () { var result = {}, tempArr = [];//result为hash表,tempArr为临时数组 for (var i = 0; i < this.length; i++) {//遍历当前数组 if (!hash[this[i]]) {//如果hash表中没有当前项 hash[this[i]] = true;//存入hash表 tempArr.push(this[i]);//把当前数组的当前项push到临时数组里面 } } return tempArr; };
数组去重-方法三
Array.prototype.unique3 = function () { var result = [this[0]];//结果数组 for (var i = 1; i < this.length; i++) {//从第二项开始遍历 //如果当前数组的第i项在当前数组中第一次出现的位置不是i, //那么表示第i项是重复的,忽略掉。否则存入结果数组 if (this.indexOf(this[i]) == i) { result.push(this[i]); } } return result; };
1、给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含【被删除的重复条目的新数组】
Array.prototype.unique = function () { var result = []; for (var i = 0; i < this.length; i++) { for (var j = i + 1; j < this.length; j++) { if (this[i] === this[j]) { result.push(this.splice(j, 1)[0]); } else { j++; } } } return result; }; console.log(["a", "b", "c", "d", "b", "a", "e", "asd", "as", 12, 56, 1, 12, "as"].unique());
var a = [1,4,5,2,9]; 下面求a中最大值正确的是
var a = [1, 4, 5, 2, 9]; console.log(Math.max.apply(null, a));
为 Array 对象添加一个去除重复项的方法,得到【去重后的数组】
Array.prototype.uniq = function () { var arr = []; var flag = true; for (var i = 0; i < this.length; i++) { if (arr.indexOf(this[i]) == -1) { if (this[i] != this[i]) { if (flag) { arr.push(this[i]); flag = false; } } else { arr.push(this[i]) } } } return arr; }; console.log([false, true, undefined, null, NaN, 0, 1, {}, {}, "a", "a", NaN].uniq());
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/88226.html
摘要:同行这么做使用实现圆形进度条前端掘金在开发微信小程序的时候,遇到圆形进度条的需求。实现也谈数组去重前端掘金的数组去重是一个老生常谈的话题了。百度前端技术学院自定义前端掘金一标签概念元素表示用户界面中项目的标题。 闲话图片上传 - 掘金作者:孙辉,美团金融前端团队成员。15年毕业加入美团,相信技术,更相信技术只是大千世界里知识的一种,个人博客: https://sunyuhui.com ...
摘要:同行这么做使用实现圆形进度条前端掘金在开发微信小程序的时候,遇到圆形进度条的需求。实现也谈数组去重前端掘金的数组去重是一个老生常谈的话题了。百度前端技术学院自定义前端掘金一标签概念元素表示用户界面中项目的标题。 闲话图片上传 - 掘金作者:孙辉,美团金融前端团队成员。15年毕业加入美团,相信技术,更相信技术只是大千世界里知识的一种,个人博客: https://sunyuhui.com ...
摘要:专题系列第六篇,讲解深浅拷贝的技巧和以及实现深浅拷贝的思路前言拷贝也是面试经典呐数组的浅拷贝如果是数组,我们可以利用数组的一些方法比如返回一个新数组的特性来实现拷贝。所以我们可以看出使用和是一种浅拷贝。 JavaScript 专题系列第六篇,讲解深浅拷贝的技巧和以及实现深浅拷贝的思路 前言 拷贝也是面试经典呐! 数组的浅拷贝 如果是数组,我们可以利用数组的一些方法比如:slice、co...
阅读 2611·2021-11-16 11:40
阅读 3407·2021-11-08 13:26
阅读 870·2021-10-28 09:32
阅读 3529·2021-09-13 10:26
阅读 802·2019-08-30 15:55
阅读 776·2019-08-30 15:44
阅读 1907·2019-08-30 15:44
阅读 1753·2019-08-30 13:48