_Doogie
2016-09-07 16:20
1)创建数组、数组的增删改查 首先是数组的创建,有两种方式: var arr = [1,2,3]; //以字面量的形式创建 var arr = new Array(1,2,3); //以构造函数的形式创建 其中第二种以构造函数的形式有两种参数形式,第一种是直接传入数组的元素,第二种则是传入数组的length大小 数组创建好了,如何去增删改查? 增加:栈方法里的push()或者unshift(),前者是表示从数组的后面插入,后者则是从数组的前面插入(老司机开车了- -) 删除:栈方法里的pop()或者shift(),跟上面一样,前者是从数组的后面删除,后者是从前面删除,还有一种方法是Array.prototype.splice(),它有删除功能,可以传入两个参数,第一个表示删除的起点位置,第二个参数表示删除的元素个数 修改:可以通过索引去修改值或者用上面说到的Array.prototype.splice(),它有替换功能,可以传入三个参数,第一个表示删除的起点位置,第二个参数表示删除的元素个数,第三个参数表示替换的元素 查找:可以通过索引方法indexOf()或者lastIndexOf()去查找某个元素,方法有两个参数,第一个表示要查找的元素,第二个参数可以指定查找的起点位置 2)数组方法 Array.prototype.join(sep) 将数组转化为字符串,其中sep是分隔符,当sep没传入时默认的分隔符为逗号,如下: var arr = [1,2,3]; arr.join(); //"1,2,3" arr.join("||"); //"1||2||3" Array.prototype.sort() 数组排序方法,默认是按字母先后顺序进行排列,如: var arr = ["a","c","b"]; //["a","b","c"] 如果想要比较数字,则需要给sort传入一个比较函数,如: arr.sort(function(a,b){ return a-b; }); 传入的函数返回值若为负数则表示a排在b前面,若为正数则相反,所以当我们想要升序排序则return a-b;若想要降序排序则return b-a; Array.prototype.reverse() 数组的倒序排序,没什么好解释的啦- - Array.prototype.concat() 数组的拼接方法,传入的参数是我们想要跟数组拼接起来的数或者另外一个数组 当传入数字或者数组时则附加到原数组的后面,当传入数组时,如果数组里还有数组就不会进行二级的拼接,如下: arr.concat(4,5); //[1,2,3,4,5] arr.concat(4,5,[6,7]); //[1,2,3,4,5,6,7] arr.concat(4,5,[6,[7,8]]); //[1,2,3,4,5,6,[7,8]] PS:Array.prototype.concat()并不会影响原数组,只是会返回一个新的数组 Array.prototype.slice() 生成子数组方法,参数有两个,第一个表示起始位置,第二个表示结束位置的后面一位,如: var arr = [1,2,3,4,5,6,7,8]; arr.slice(2,4); //[3,4] PS:Array.prototype.slice()并不会影响原数组,只是会返回一个新的数组 Array.prototype.splice() 这个方法很强大,它能够执行数组的删除,替换,插入操作 删除:传入两个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数 arr.splice(2,1); //[3] 替换:传入三个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数,第三个则是要替换的元素 arr.splice(2,1,9); //[3] 插入:传入三个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数(此处为0),第三个则是要插入的元素 arr.splice(2,0,10,11); //[] PS:Array.prototype.splice()会影响原数组,返回一个删除的元素数组 迭代方法: Array.prototype.forEach():对数组的每一项运行给定函数,不返回值 Array.prototype.map():对数组的每一项运行给定函数,返回运行结果所组成的数组 Array.prototype.filter():对数组的每一项运行给定函数,返回运行结果为true所组成的数组 Array.prototype.every():对数组的每一项运行给定函数,当所有运行结果为true时才返回true Array.prototype.some():对数组的每一项运行给定函数,当有运行结果为true时才返回true 归并方法: Array.prototype.reduce():从左到右对数组进行依次累积操作,返回最后的运行结果,如: 求数组的累加 var arr = [1,2,3]; arr.reduce(function(x,y,index,arr){ return x + y; }); Array.prototype.reduceRight():从右到左对数组进行依次累积操作,返回最后的运行结果 var arr = [1,2,3]; arr.reduceRight(function(x,y,index,arr){ return x + y; }); 查找方法: Array.prototype.indexOf():两个参数,第一个表示查找的元素,第二个表示查找的起点位置 Array.prototype.lastIndexOf():两个参数,第一个表示查找的元素,第二个表示查找的起点位置
赞赞赞
赞!!!
JavaScript深入浅出
281098 学习 · 1048 问题
相似问题