循环绑定=>变量污染 for (var i = 0;i<lis.length;i++){ lis[i].index = i;#给页面元素对象添加一个任意属性(保留索引的属性index) #循环绑定时,i分别是0,1,2,3,也就是给每个li进行事件的绑定,在绑定时,没有执行事件内部代码,只有在激活事件时才会执行,当循环结束后,i变为4(length为4),激活事件时,i已经变为4,console.log(i)打印的都是4 lis[i].onclick = function(){ console…
concat() 方法用于连接两个或多个数组.此方法返回一个新数组,不改变原来的数组. 语法 arrayObject.concat(array1,array2,...,arrayN) 参数说明: 注意:  该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 我们创建一个数组,将把 concat() 中的参数连接到数组 myarr 中,代码如下: <script type="text/javascript">   var mya = new Array(3);  …
JS对象—数组总结(创建.属性.方法) 1.创建字符串 1.1 new Array() var arr1 = new Array(); var arr2 = new Array(6); 数组的长度为6 var arr3 = new Array(1, 2, 3, 4); 括号中的元素为数组的项, length为元素个数 1.2  [] (简写) var arr4 = [1,2,3,4] 2.数组的属性 2.1 constructor         对创建数组对象的Array构造函数的引用, 2.…
前台的js对象数组传到后台处理.在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>…
js对象数组中的某属性值 拼接成字符串 var objs=[ {id:1,name:'张三'}, {id:2,name:'李四'}, {id:3,name:'王五'}, {id:4,name:'赵六'}, ]; var idsStr = objs.map(function(obj,index){ return obj.id; }).join(","); console.log(idsStr);…
来源:js对象数组按照多个字段进行排序 一.数组排序 Array.sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组的排序. 一般用法:(数组元素从小大进行排序) var a = [9, 6, 5, 7, 11, 52, 15]; a.sort((a, b) => a-b) // (7) [5, 6, 7, 9, 11, 15, 52] sort()方法,接收了一个函数作为参数时,排序主要根据传入函数的返回值是否大于0进行排序. 1)当 a - b < 0 时, 则 a…
最近在做Silverlight应用,需要用Silverlight调用页面中Javascript方法.这 个JS方法返回一个对象数组给Silverlight.对于这个对象数组怎么在Silverlight里处理这个问题纠结了一阵子,通过搜索,在微软开发 者社区里找到了方法. 测试用的JS方法如下: 1: function test() { 2: var testObjectCollection = []; 3: for (var i = 0; i < 10; i++) { 4: var testOb…
String 字符串对象 在之前的学习中已经使用字符串对象了,定义字符串的方法就是直接赋值.比如: var mystr = "I love JavaScript!" 定义mystr字符串后,我们就可以访问它的属性和方法. 访问字符串对象的属性length: stringObject.length; 返回该字符串的长度. var mystr="Hello World!"; var myl=mystr.length; 以上代码执行后,myl 的值将是:12 访问字符串对…
主要介绍数组的一些常用的方法,方法多了,就容易混淆,结果就是方法用错,甚至不会用: 一.数组的定义: 1.字面量/直接量: var arr = [1, 2, 'js', 'java']; 2.通过内部数组对象Array来创建数组:  var arr = new Array(length/ content);(注意当括号内传入的仅仅一个值,且其为整数的情况,该值是作为数组长度,而不是数组的第一个元素内容) 二.稀疏数组和密集数组: 1.稀疏数组即数组中存在位置数组未定义,其值为undefined,…
先来看一个问题: var array = []; array["a"] = "hello"; array["b"] = "world"; array["c"] = "yes"; console.log( 在之前看过的许多javascript书籍中,都宣称js是可以使用字符串作为数组下标的,因此我在用的时候也没觉得有什么不妥.但是在查看最后一句的控制台输出结果的时候,始料未及的情况出现了:…
数组 Array concat  数组的合并 <script> var north = ["北京","上海","深圳"]; var south = ["山东","天津","抚顺"]; var newCity = north.concat(south); console.log(newCity) </script> // ["北京", "…
最近待业在家,系统地学习了一套js的课程.虽然工作时间真的比较长了,但有些东西只局限在知其然而不知其所以然的程度上,有些知识点通过“血和泪”的经验积累下来,也只是记了结果并没有深究,所以每次听完课都有些收获.想起2018年的新年目标上有一条是至少更新50篇博客,结果……,呵呵,所以打算在19年剩下的这些天里,实现18年未达成的目标. 现在进入正题,相信很多面试者会被问到这样一道题(我就碰到过至少2次),js实现数组(只有正整数)去重有几种方法?最直接的想到的应该是双层循环进行比对,不等于push…
1.数组的创建 var name= new Array(); //创建一个数组 name[0]="zhangsan";   //给数组赋值 name[1]="lisi"; var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var name=["zhangsan","lisi"];       //创建一个数组并赋值 var name=new Array(&qu…
这篇主要说一说截取字符串的方法,用于帮助自己缕清方法的作用,参数的意义,返回值,是否对于原来的字符串进行了操作等. 在javascript中,常见的截取字符串的方法有slice().substring().substr()这三种方法,我主要为了捋清楚这三种方法的相同点与不同点,在什么情况下适用于哪一种.优雅的代码都是从一点一滴开始的. slice() 首先,我在百度上面搜索了一下slice()方法,给出的链接是Javascript Array对象的 slice()方法,是对数组的操作.作用是从已…
一:数组的创建方式: 1.采用直接量创建 var arr = [];//创建一个空数组 var arr2 = [1,2,3];//创建一个有三个元素的数组 2.采用构造函数创建 a.var arr1 = new Array();//创建空数组 b.var arr2 = new Array(10)://创建一个长度为10的数组 c.var arr3 = new Array(5,4,3,2,1)://创建数组并初始化二:数组的方法 据最新的chrome浏览器提供的方法可以在控制台看到: 接下来就一一…
一.JS数组求并集,交集和差集 需求场景 最近,自己项目中有一些数组操作,涉及到一些数学集的运算,趁着完成后总结一下. 简化问题之后,现有两数组a = [1, 2, 3],b = [2, 4, 5],求a,b数组的并集,交集和差集. 方法选择 JS在ES6,ES7之后,新增了一些数组方法,如果能够使用,那是极好的,毕竟自己写封装函数还是比较辛苦的. ES7 ES7新增了一个Array.prototype.includes的数组方法,用于返回一个数组是否包含指定元素,结合filter方法. var…
之前在写一个vue的计算属性时,大概是这样: computed: { updateList () { let newList = this.List /*do something*/ return newList }, } 本想的是设置个中间变量newList,将它和原来的List相比做一些操作,最后返回这个newList,后来发现原List也改变了.才意识到这个newList只是个引用类型,改变了它原来的对象也会变. 查资料的过程中,注意到了还有深拷贝浅拷贝的区别: 浅拷贝是拷贝一层,深层次的…
今天碰到个问题,js对象.数组深度复制:之前有见过类似的,不过没有实现函数复制,今晚想了一下,实现代码如下: function clone(obj) { var a; if(obj instanceof Array){ a=[]; for(var i=0;i<obj.length;i++){ a.push(clone(obj[i])) } }else if(obj instanceof Function){ return eval('('+obj.toString()+')') }else if…
昨天总结的JavaScript中的数组Array方法 数组的迭代方法 ES5中为数组定义了5个迭代方法.每个方法都要接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象---影响this的值. 传入方法中的函数会介绍三个参数:1.数组项的值 2. 该项在数组的中位值 3. 数组对象本身: every()和some()方法  every():对数组中的每一项运行给定函数,如果每一项都返回true,则返回true,否则false:  some():对数组中的每一项运行给定函数,如…
js JSON.stringify(jsObj);   对象转字符串JSON.parse(str);  字符串转对象…
var arr=['a','b','c']; 若要删除其中的'b',有两种方法: 1.delete方法:delete arr[1] 这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用 for(index in arr) {  document.write('arr['+index+']='+arr[index]); } 这种遍历方式跳过其中undefined的元素 * 该方式IE4.o以后都支持了 2.数组对象spli…
var arr = [{ "name": "ZYTX", "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix", "gender": "AAAAAA.doc" }, { "name": "ZYTA", "age": "Y13x…
1字符串对象  直接对字符操作 var str = "这,是,不,是,字,符,串";        //字符串转数组  字符串.split(分隔符)        var arr = str.split(",");//参数是分隔符        console.log(arr);  // ["这", "是", "字", "符", "串"]        //数组转字符…
一.利用对象收编变量 当我们决定实现某一项功能的时候最简单的其实就是写一个命名函数,然后调用来实现,就像这样: function checkName(){ //验证姓名 } function checkEmail(){ //验证邮箱 } checkEmail(); checkName(); 但是这样一来实际上增加了很多的值为函数全局变量,我们这么写会看的更清楚: var checkName = function(){ //验证姓名 } var checkEmail = function(){ /…
使用collect.js处理数组和对象 https://github.com/ecrmnn/collect.js/# 引入collect.js https://github.com/ecrmnn/collect.js/#installation npm install collect.js --save 或 <script src="https://cdn.jsdelivr.net/npm/collect.js@4.0.25/build/collect.min.js">&l…
在数组中splice方法有增.删.该的多功能用处. var list = []; list.push(1); list.push(2); list.push(3); console.log(list); // [1, 2, 3] // 删除 list.splice(0,1); // 删除 -> 从下标为0开始,长度为1 console.log(list); // [2,3] list.splice(0,2); // 删除 -> 从下标为0开始,长度为2 console.log(list); /…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-…
字符串charAt() 返回在指定位置的字符.charCodeAt() 返回在指定的位置的字符的 Unicode 编码.concat() 连接字符串.indexOf() 检索字符串.match() 找到一个或多个正则表达式的匹配.replace() 替换与正则表达式匹配的子串.search() 检索与正则表达式相匹配的值.slice() 提取字符串的片断,并在新的字符串中返回被提取的部分.split() 把字符串分割为字符串数组.toLocaleLowerCase() 把字符串转换为小写.toL…
String 方法 描述 charAt() 返回在指定位置的字符. charCodeAt() 返回在指定的位置的字符的 Unicode 编码. concat() 连接字符串. indexOf() 检索字符串. match() 找到一个或多个正则表达式的匹配. replace() 替换与正则表达式匹配的子串. search() 检索与正则表达式相匹配的值. slice() 提取字符串的片断,并在新的字符串中返回被提取的部分. split() 把字符串分割为字符串数组. toLocaleLowerC…
数组排序sort() sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码顺序排列. 2.如果指定<方法函数>,则按<方法函数>所指定的排序方法排序. myArray.sort(sortMethod); 注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数 a 和 b,其返回值如下: 若返回值<=-1,则表…