javascript数组去重小结
前言最近为了换工作,准备下面试,开始回顾复习JavaScript相关的知识,昨天下午想到了数组去重的相关方法,干脆整理出几篇JavaScript算法文章,以备后用,此系列文章不定篇数,不定时间,想到哪写到哪,不保证正确性,不保证高效率,只是谈谈个人理解,如有错误,请诸位斧正。关于去重数组去...
2024-01-10浅谈javascript回调函数
把函数作为参数传入到另一个函数中。这个函数就是所谓的回调函数经常遇到这样一种情况,某个项目的A层和B层是由不同的人员协同完成.A层负责功能funA,B层负责funcB。当B层要用到某个模块的数据,于是他对A层人员说,我需要你们提供满足某种需求的数据,你给我提供一个接口。A层的人员说:我给你提供...
2024-01-10javascript字符串函数汇总
JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串。var a = "hello";var b = ",world";var c = a.concat(b);alert(c);//c = "hello,world"indexOf返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。var index1 = a.indexOf("l");//index1 = 2var index2 = a.indexOf("l",3);//i...
2024-01-10javascript数组去重方法终极总结
有时会碰上这种需求,需要将数组中重复的元素删除掉,而只保留一个。最先想到的办法很可能就是用2个for循环来做比较然后去除掉重复的元素,代码如下所示:方法1:Array.prototype.distinct = function(){ var arr = [], len = this.length; for ( var i = 0; i < len; i++ ){ for( var j = i+1; j < len; j++ ){ if( this...
2024-01-10javascript构造函数如何借用
说明1、调用子类构造函数中的父类构造函数。采用apply和call()方法,将新创建的对象作为上下文执行函数。2、由于构造函数的定制类型必须在构造函数中定义,因此函数不能重用。另外,子类不能访问父类原型定义的方法(只能访问父函数的上下文),因此盗用构造函数基本上不能单独使用。实例function...
2024-01-10javascript组合继承的基本原理
组合继承有时也叫伪经典继承,结合了原型链和盗用构造函数。1、通过原型链继承原型上的属性和方法,盗用构造函数继承实例属性。2、这样不仅可以将方法定义为原型,还可以使每个实例都有自己的属性。实例function Super (name) { this.name = name this.friends = ['zs', 'ls']} Super.prototype.walk = fun...
2024-01-10在javascript中从数组的开头删除元素
这可以使用unshift方法来完成。例如, 示例let veggies = ["Onion", "Raddish"];veggies.shift();console.log(veggies);输出结果这将给出输出-["Raddish"]...
2024-01-10Javascript函数不能正确展平数组
我把一个JavaScript函数放在一起,这个函数应该是拼合一个嵌套数组。但是,这种方法总是只返回原始数组。例如,使用以下数组[1, 2, 3, [4, 5, [6], [ ] ] ]运行此函数将只返回该数组。我知道有些方法可以使用reduce来做到这一点,但是阻止这种方法工作的逻辑原因是什么? .map应该允许我操作一个返回值并...
2024-01-10javascript中call函数的原理
原理分析1、给CONTEXT设置一个属性,属性值一定是要执行的函数。2、基于CONTEXT.XXX()成员访问执行方法,就可以把函数执行,并且改变里面的THIS。都处理完后,把给CONTEXT设置的这个属性删除掉。实例Function.prototype.call = function(context,...params){ let key = Symbol('key'),//设置唯一值 result; !/^(object...
2024-01-10Javascript删除数组里的某个元素
删除数组中的某个元素,首先需要确定需要删除元素的索引值。var arr=[1,5,6,12,453,324];function indexOf(val){ for(var i = 0; i < arr.length; i++){ if(arr[i] == val){return i;} } return -1;}找到相对应的索引值后,根据索引值删除数组中该元素对应的值function remove(val){ var index = indexOf(val); if(index > -1){arr.spl...
2024-01-10javascript如何使用构造函数继承
说明1、使用父类的结构函数来增强子类的实例,等于复制父亲的实例给子类。2、使用注意,只能继承父类实例属性和方法,不能继承原型属性、方法、不能再利用。每个子类都有父亲实例函数的复印件,影响性能。实例function SuperType(){ this.color=["red","green","blue"];}function SubType(){ //继承...
2024-01-10在javascript中将字节数组转换为字符串
如何将字节数组转换为字符串?我发现这些功能相反:function string2Bin(s) { var b = new Array(); var last = s.length; for (var i = 0; i < last; i++) { var d = s.charCodeAt(i); if (d < 128) b[i] = dec2Bin(d); else { var c = s.charAt...
2024-01-10将数组从.jsp传递到javascript函数
我有一个Liferay Portlet,我在其中将动作阶段的String数组传递到.jsp文件中的呈现阶段。我能够访问数组并像这样遍历它:<c:forEach var="item" items="${arrayItems}"> <p>${item}</p></c:forEach>这只是为了检查传递数据是否可以正常工作…但是,我想将整个数组传递给我的javascript函数(该函数将数据渲染到画布上)...
2024-01-10javascript函数节流实现的两种方式
1、用时间戳判断是否已到回调执行时间,记录上次执行时间戳,然后每次触发事件时执行回调,回调判断当前时间戳距离上次执行时间戳的时间间隔是否为*s。如果是,则执行,并更新上次执行时间戳,如此循环。var throttle = function(delay, action) { var last = 0; return function() { ...
2024-01-10Javascript中数组方法汇总(推荐)
Array.prototype中定义了很多操作数组的方法,下面介绍ECMAScript3中的一些方法1.Array.join()方法该方法将数组中的元素都转化为字符串并按照指定符号连接到一起,返回最后生成的字符串,可以包含一个参数,为连接数组元素的符号,默认为逗号。var ay = [1,2,3];ay.join(); // =>"1,2,3" ay.join("+"); // => "1+...
2024-01-10javascript合并两个数组最简单的实现方法
在开发的过程中,我们很多时候会遇到需要将两个数组合并成一个数组的情况出现。var arr1 = [1, 2, 3];var arr2 = [4, 5, 6];// 将arr1和arr2合并成为[1, 2, 3, 4, 5, 6]这里总结一下在JavaScript中合并两个数组的方法。for循环数组这个方式是最简单的,也是最容易实现的。var arr3 = [];// 遍历arr1for (var i = 0; i < arr...
2024-01-10如何在Javascript中重组对象?
我的位置列表:如何在Javascript中重组对象?[ { "id": 1, "name": "Location 1", "city": { "id": 7, "name": "Phoenix", } }, { "id": 2, "name": "Location 2", "city": { "id": 7, "name": "Phoenix", } }, { "id": 3, "name...
2024-01-10javascript中的自执行匿名函数应用示例
Javascript中的自执行匿名函数格式:(function(){ //代码 })();解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。来个带参数的例子:(function(arg){ alert(...
2024-01-10javascript数字验证的实例代码(推荐)
现在有一个需求如下图:产品经理说Card Number只能让输入数字(中间的空格是格式自加的,也是用js实现的),有时候我脑海中出现了个声音,啥玩意,加个type=number不就行了,事实发现图样图森破了,先不说type=number后面会有个上下标(虽然用css可干掉),但是这个类型是支持科学输入法的,就是小数点...
2024-01-10详解javascript中的变量提升和函数提升
1在js中只有两种作用域a:全局作用域b:函数作用域在ES6之前,js是没有块级作用域。首先来解释一下什么是没有块级作用域?所以此时 是可以打印输出变量a的值。2:什么是变量提升?在我们的js中,代码的执行时分两步走的,1、解析 2、一步一步执行那么变量提升就是变量声明会被提升到作用域...
2024-01-10Javascript有哪些Math数学类
说明1、random()返回0 ~ 1之间的随机数。[ 0 , 1 )2、ceil(x)对数进行上舍入。3、floor(x)对数进行下舍入。4、round(x)把数四舍五入为最接近的整数。实例Math.PI 圆周率console.log(Math.PI); // 3.141592653589793 圆周率 Math.ceil(num) 对num向上取整console.log(Math.ceil(4.2)); // 5 对num向上取整 Math....
2024-01-10Javascript对象push()函数
我有一个javascript对象(实际上是通过ajax请求获取数据的):var data = {};我已经添加了一些东西:data[0] = { "ID": "1"; "Status": "Valid" }data[1] = { "ID": "2"; "Status": "Invalid" }现在,我要删除状态无效的所有对象(但保持所有顺序相同):var tempData = {};for ( var index in data ) { if ( data[index].Status == "Vali...
2024-01-10从react组件调用外部Javascript函数
我不确定之前是否有人问过这个问题,或者有人在reactjs上遇到过同样的问题。所以场景是这样的,我有一个包含一些javascript 的index.html文件。现在,在我的react组件上,我有一个仅在条件为true时才会呈现的条件。这意味着最初在我的页面加载时,尚未呈现该组件。当我切换按钮时,这就是渲染该组件...
2024-01-10如何在Javascript中clone对象数组?
…每个对象还引用了同一数组中的其他对象吗?当我第一次想到这个问题时var clonedNodesArray = nodesArray.clone()将存在并搜索有关如何在javascript中克隆对象的信息。我确实在StackOverflow上发现了一个问题(由相同的@JohnResig回答),他指出,使用jQuery,您可以做到var clonedNodesArray = jQuery.extend({}, nodesArray);cl...
2024-01-10Javascript中的匿名函数与封装介绍
迷惑了一会儿不同JS库的封装后,终于有了点头绪。大致就是:创建一个自调用匿名函数,设计参数window,并传入window对象。而这个过程的目的则是,使得自身的代码不会被其他代码污染,同时也可以不污染其他代码。jQuery 封装于是找了个早期版本的jQuery,版本号是1.7.1里面的封装代码大致是...
2024-01-10