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)…
查看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,‘1’是不同的,应该不去重 未考虑到对象 所以,参考答案只能去重基础类型 根据以往看过的文章,基础去重采用es6语法可以这么写. 现在的面试题,挺考验一个人的能力的,算法思路.知识面等等. 这个和问复制对象回答 JSON.parse(JSON.stringify(xxx)),问排序回答 sort 有点接近. 作为一名技术人员,特别是技术更新迭代较快的时代,阅读,思考,实践,是必不可少…
自从有了es6的set数据结构,数组的去重可以简单用一行代码实现,比如下面的方式 let arr = [1, 2, 2, 3, 4] function unique (arr) { return [...new Set(arr)] } console.log(unique(arr)) // [1, 2, 3, 4] 但是当数组的项不再是简单的数据类型时,比如是对象时,这种方法就会导致错误,比如下面的结果 let arr = [ { name: 'a', num: 1}, { name: 'b',…
<!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.冒泡排序 <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…
以 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]…
给出以下数组 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--…
设计大概是这个样子的,很简单,两个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个和第二次循环的数组…