JS 封装一个对数组去重的函数】的更多相关文章

var zz = [1,2,3,5,5,7,8,6,6]; var se = []; d(se); function d(attr){ for(var i = 1;i<zz.length;i++){ if(se.indexOf(zz[i])<0){ se.push(zz[i]); } } document.write(se) }…
php中数组去重的小例子.  代码如下: <?php   /** * 数组去重复的小函数 * by www.jbxue.com */     function assoc_unique($arr, $key) {            $tmp_arr = array();            foreach($arr as $k => $v) {                if(in_array($v[$key], $tmp_arr)) {                    uns…
查看zepto源码时,看到它的数组去重写法非常简单.下面是代码 var uq = function(array){ return [].filter.call(array,function(item,idx){ return array.indexOf(item) == idx }) }uq([1,3,5,1,2,5])输出: [1,3,5,2] 这里用到了array filter方法. 下面再简单介绍一下 filter方法的使用. filter() 方法创建一个新数组, 其包含通过所提供函数实…
1.冒泡排序 <script>//声明一个数组 var arr=[1,88,66,22,35,65,4,52];//自执行函数 (function maopao(){ for(var i=0;i<arr.length;i++){ for(var j=0;j<arr.length-i;j++){ if(arr[j]>arr[j+1]){ var tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; } } } })(); document.wri…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> /***冒泡排序法***/ var arrSort = [20,30,10,40,0]; function sortarr(arr…
今天,在聊天群里看到数组去重的话题,面试者的答案如下: 参考答案如下: 程序员思维,做出如下测试: 未考虑到:1,‘1’是不同的,应该不去重 未考虑到对象 所以,参考答案只能去重基础类型 根据以往看过的文章,基础去重采用es6语法可以这么写. 现在的面试题,挺考验一个人的能力的,算法思路.知识面等等. 这个和问复制对象回答 JSON.parse(JSON.stringify(xxx)),问排序回答 sort 有点接近. 作为一名技术人员,特别是技术更新迭代较快的时代,阅读,思考,实践,是必不可少…
1.递归例子<script type="text/javascript"> function test(num) { if(num < 0) { return; } console.log('递归算法'); test(num - 1); } test(8); //打印九次 递归算法: </script> 2.递归求和 1-100<script type="text/javascript"> function Sum(num)…
以 var arr = [1,2,3,1]; 作为测试用例 方法一:双循环   (时间复杂度比较高,性能一般.) A.(1) function unique(arr) { var newArr = []; var len = arr.length; var isRepeat; for(var i=0; i<len; i++) { //第一次循环 isRepeat = false; for(var j=i+1; j<len; j++) { //第二次循环 if(arr[i] === arr[j]…
首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) return i; } return -1; }; 然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素: 代码为: Array.prototype.remove = function(…
<script> ,,]; //原数组 var a=[]; //定义空数组 arr.map(function(x){ //用 map 遍历数组 ){ //如果当前值没有存在空数组中 a.push(x); //追加到空数组中 } }); ; //清空原数组 a.map(function(x){ //遍历去重结果 alert(x); }); </script>…
给出以下数组 var arr1 = new Array('1','2','3','3','5','4','5','6','5','5','88'); 实现对数组的去重 1. 双重for循环去重 Array.prototype.Duplicate = function() { let arr = this; ; i < arr.length-; i++) { ; j < arr.length; j++) { if (arr[i] == arr[j]) { arr.splice(j, ); j--…
1.引入:首先得知道数组没有可以直接去重的方法,即直接[].unique()是不支持的, 会报“Uncaught TypeError: [].unique is not a function”错误, 这就要求我们要将unique()方法添加到数组Array.prototype原型链中. 至于Array.prototype.unique方法内部怎么实现去重,那就往下看吧. 2.先看下分析: 还需要在学习一个知识点(有助于理解代码)  3.代码: 结果: 4.字符串去重:  …
设计大概是这个样子的,很简单,两个div,两个互移按钮,一个搜索框,要求搜索框输入时,触发待选框的搜索项 <input class="form-control" placeholder="请搜索待选科目" type="text" id="txtSearch" name="txtSearch" onkeyup="match()" style="width: 200px;&q…
去掉数组里面重复的有很多种,我这里就说一种比较简单的吧. var arr=[23,33,44,33,44,66,44,55,44,4,44,33,23]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i]==arr[j]){ arr.splice(j,1); } } } alert(arr);//结果是23,33,44,66,55,4 首先循环数组的长度,让第一次循环的数组第0个和第二次循环的数组…
var str=["1","4","5","5","6","1","7","4"];        //        console.log(str);        var arr=[]; //定义一个新数组用力存储数据        var obj={};//保存每个数据出现的次数                for(var i=0;i&l…
function myfun(arr){ var arr1 = new Array(); var len = arr.length; ;i <len ;i++){ ) { arr1.push(arr[i]); } } //console.log(arr1); return arr1; } ,,,,,,,,]); //定义一个变量 然后将函数返回值接受进来. console.log(r);…
前几天碰到一个题目,要求是这样的. 题目描述 为 Array 对象添加一个去除重复项的方法 示例1 输入 [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN] 输出 [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a'] es5代码 它的在线编辑器只支持es5, 所以写下了一长串代码 Array.prototype.uniq = function () { var i…
我们常常在做后台管理系统的时候 需要对数据进行组装成一个树装结构,这里特地将此方法进行封装: let data = [ { id: , text: }, { id: , text: }, { id: , text: }, { id: , text: }, { id: , text: }, { id: , text: } ] function treeData (data, id, parentId, childName) { let cloneData = JSON.parse(JSON.str…
<script type="text/javascript"> //indexOf"是ECMAScript5方法,IE8以下不支持,需多写兼容低版本浏览器代码. Array.prototype.indexOf=Array.prototype.indexOf|| function(item){ for(var i=0;i<this.length;i++) { if(this[i]===item) { return i; } } return -1; } var…
var arr=[1,1,1,1,2,2,2,3,3,4,1,4,5,7,8,7,7] let m = {} arr.filter(item => m[item] >= 1 ? false : (m[item] = (m[item] || 0) + 1)) //filter返回false删除掉遍历的当前元素,true留下当前元素 //(m[item] = (m[item] || 0) + 1) m[item]记录的是当前元素item出现的次数,可以打印出m看下效果 var arr=[1,1,1…
,,,,])) // 再把set转变成array console.log(newArr) // [1,2,3,4]…
s(); function s (){ var mydate=new Date(); var y = mydate.getFullYear(); var m = mydate.getMonth(); var d = mydate.getDate(); var x = mydate.getHours() var f = mydate.getMinutes() var mm = mydate.getSeconds() document.write(y+"-"+(m+1)+"-&q…
y(6) var s = ""; function y (r){ s = Math.PI*r*r; alert(s); }…
手写一个使用原生JS封装的多级菜单的函数,满足以下几点需求. 子类层级不确定,可根据数据自动生成多级菜单. 操作便捷,只需传入一个HTML标签. 缺点: 需要满足特定的数据结构 废话不多说,展示代码.先展示数据代码,注意,使用此封装函数需要满足此数据结构. var data = [{ id: 1, address: "安徽", parent_id: 0 }, { id: 2, address: "江苏", parent_id: 0 }, { id: 3, addre…
之前一段时间一直在准备面试, 因而博客太久没更新: 现在基本知识点都复习完毕, 接下来就分享下 面试的一些常见问题: 去正规的互联网公司笔试.面试有很大的概率会碰到 使用javascript实现数组去重 的编码问题: 如:魅族笔试题: 本博文就 js 如何实现数组去重整理出5种方法,并附上演示Demo 以及 源码.  1.遍历数组法   最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中:注意点:判断值是否在数组的方法“indexOf”是ECMAScript5…
在实际工作或面试中,我们经常会遇到"数组去重"问题,接下来就是使用js实现的数组去重的多种方法: 1.借助ES6提供的Set结构 var arr = [1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1]; console.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1] function noRepeat11(arr){ var newArr = []; var myset = new Set(arr…
 壹 ❀ 引 稍微有了解JavaScript数组API的同学,对于reduce方法至少有过一面之缘,也许是for与forEach太强大,或者filter,find很实用,在实际开发中我至始至终没使用过reduce方法一次.很巧的是今天再刷面试题的过程中,遇到了一题关于数组操作的的题,相关解析中有人使用到了reduce方法,好吧我承认我看着有点茫然,因为我从未正眼过它,那么今天就给彼此一首歌的时间,让我们好好了解你,关于reduce本文开始.  贰 ❀ 关于reduce 一个完整的reduce方法…
本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 /*设置cookie*/ function setCookie(name, value, iDay) {   var oDate=new Date();   oDate.setDate(oDate.getDate()+iDay);   document.cook…
js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2", num: "11" }, { name: "name3", num: "12" }, { name: "name4", num: "13" }, { name: "name2",…
前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', 'c', 'd', 'a', 'a', 'e', 'g', 'a', 'f'];arr.forEach(function(value, index) {    value === 'a' ? arr.splice(index, 1) : '';})console.log(arr); //["a&q…