引用类型是一种用来链接数据和函数的数据结构。创建对象的方法:1.newoperatorvararray=newArray();2.创建vararray=[]的文字表达式;数组检测数组:检测数组是基本类型还是引用类型转换方法:将数组转换为String或数组对象入栈方法:操作数组的后进先出方法队列方法:先进先出-out方法操作数组操作方法:数组的拼接、截取、插入、删除、替换位置方法:查找数组项,返回索引值迭代方法:操作数组每一项的方法缩窄方法:操作数组的每一项,构造1、检测数组检测数组方法的最终返回值;instanceof操作符的问题是当开发环境引入多个frameworks时,有多个全局环境时,会出现不同的Array构造函数,进而出现不同的结果。Array.isArray()方法很好地解决了这个问题。arrNameinstanceofArrayvararray=[1,2,3];console.log(arrayinstanceofArray)//trueArray.isArray(arrName)console.log(Array.isArray(array))//trueWeb前端视频讲解:进入学习2转换方法toString():返回一个逗号分隔的字符串valueOf():返回一个对象toLocaleString():区别很小,如果数组调用这个方法,那么数组中的每一项都会调用这个方法警报(值)==警报(value.toString())vararray=[1,2,3];vararrayToString=array.toString();vararrayValueOf=array.valueOf();vararrayToLocalString=array.toLocaleString();console.log(arrayToString);//1,2,3console.log(arrayValueOf);//[1,2,3]console.log(arrayToLocalString);//1,2,33堆栈方法(LIFO:lastinfirstout)ES数组类似于数据结构方法栈,是一种限制插入和删除项的数据结构push():接收任意数量的参数添加到数组末尾,返回数组长度值pop():删除数组末尾的最后一项,减少数组的长度值,返回数组最后删除的一项。4队列方法(FIFO:firstinfirstout)结合push()和shift()方法可以像队列一样使用数组。使用unshift()和pop()可以模拟相反方向的队列shift()移除并返回数组的第一项;unshift()从数组的前面添加任意数量的参数并返回新数组的长度5操作方法concat()复制原始数组连接新数组以形成新的副本;vararr1=['q','w','e'];vararr2=['h','u','o'];document.write(arr1.concat(arr2));//q,w,e,h,u,oslice()有一个当有两个参数时,复制的参数是从起始位置到结束位置的拷贝;当有两个参数时,复制两个数字中间部分的数组项;如果参数为负数,则将数组长度加上负值得到的两个参数之间复制数组项;vararr3=['h','e','l','l','o'];console.log(arr3.slice(1));//e,l,l,oconsole.log(arr3.slice(-4));//e,l,l,oarr3.slice(-4)===arr3.slice(1);//truesplice()三个参数:分别对应起始位置、删除项数、替换项数;通过这三个参数的合理使用,可以实现删除、插入、替换等操作//从第一项中删除两项varsplice_arr1=['h','e','l','l','o'];console.log(splice_arr1.splice(1,2))//返回删除项数组["e","l"]//在第二项后插入三项oldvarsplice_arr2=['h','e','l','l','o'];varremoved=splice_arr2.splice(2,0,"K","K");console.log(splice_arr2);//["h","e","K","K","l","l","o"]console.log(removed)//返回的是一个空数组//替换varremoved=splice_arr3.splice(2,2,"P","P");console.log(splice_arr3);//["h","e","P","P","o"]console.log(removed)//返回替换值["l","l"]6Position方法返回索引值indexOf()从前往后查找lastIndexOf()从后往前查找//indexOf()从前往后查找//lastIndexOf()从后往前查找varindex_arr=['h','e','l','l','o'];varindexOf_arr=index_arr.indexOf('l');console.log('Originalarray:',index_arr)//原数组不变console.log('返回值:',indexOf_arr)//返回值为第一个找到的位置的索引值2varindex_arr2=['h','e','l','l','o'];varindexOf_arr2=index_arr2.lastIndexOf('l');console.log('Originalarray:',index_arr2)//原数组不变console.log('Returnvalue:',indexOf_arr2)//返回值是第一个找到的位置的索引值37迭代方法接收两个参数,一个是函数,一个是函数运行的作用域对象第一个参数函数接收三个参数数组项的值项,值的位置idnex,以及数组本身arrayevery()//如果返回true,则返回truevarnumbers=[1,2,3,4,5,6,7,8,9,0,9,8,7,65,5,4,33,21,1,1,23,3,4];vareveryArr=numbers.every(函数(它,index,arr){if(it>9){returntrue;}})console.log(everyArr);///falsome()//如果返回true,则返回truevarsomeArr=numbers.some(function(it,index,arr){return(it>9);})console.log(someArr);///trueforEach()//无返回值varnumbers=[1,2,3,4,5,6,7,8,9,0,9,8,7,65,5,4,33,21,1,1,23,3,4];varforEachArr=numbers.forEach(function(it,index,arr){varit=it*100;console.log(it)})//无返回值filter()//返回这个函数返回的项目数组true用于过滤varnumbers=[1,2,3,4,5,6,7,8,9,0,9,8,7,65,5,4,33,21,1,1,23,3,4];varfilterArr=numbers.filter(function(it,index,arr){if(it>10){returnit;}})console.log(filterArr);//[65,33,21,23]//返回一个新的返回值数组map()//返回每个函数的返回值varnumbers=[1,2,3,4,5,6,7,8,9,0,9,8,7,65,5,4,33,21,1,1,23,3,4];varmapArray=numbers.map(function(it,index,arr){var它=它*100;返回它;})console.log(mapArray)//[100,200,300,400,500,600,700,800,900,0,900,800,700,6500,500,400,3300,2100,100,100,2300,300,400]//返回一个包含8个返回值的新数组。减少方法reduce()varnumbers=[1,2,3,4,5,6,7,8,9,0,9,8,7,65,5,4,33,21,1,1,23,3,4];varallArray=numbers.reduce(function(prev,cur,index,arr){return(prev+cur);})console.log(allArray);//229reduceRight()varnumbers=[1,2,3,4,5,6,7,8,9,0,9,8,7,65,5,4,33,21,1,1,23,3,4];varallArrayRight=数字.reduceRight(function(prev,cur,index,arr){return(prev+cur);})console.log(allArrayRight);//229总结:经过这次总结和实践,我觉得自己应该不怕了以后再操作阵法;我工作中使用最多的字符是split()字符串截取的操作方法。这个方法虽然是字符串方法,但是用这个总结方法还是很容易的。效果很好,但效率略低。如何解决这个问题。..
