2024年10月javascript数组使用教程(原生JS中数组常见的方法)

 更新时间:2024-10-12

  ⑴javascript数组使用教程(原生JS中数组常见的方法

  ⑵原生JS中数组常见的方法

  ⑶shift():删除数组中第一个元素,并将长度减,下面举例:vararr=?varres=arr.shift()console.log(res)?//打印出来返回值是被删除的数组元素.?pop():删除数组中最后一个元素,并将长度减,下面举例:vararr=?varres=arr.pop()console.log(res)//打印出来返回值是删除的数组元素.unshift():往数组前面添加一个或多个数组元素,长度要改变,下面举例:varres=arr.unshift(’张姨’,)?console.log(res)??console.log(arr)//?返回值是增加后数组的长度.push():往数组结尾添加一个或多个数组元素,长度要改变varres=arr.push(’随便’,’哈哈’)console.log(arr)console.log(res).为了更好的代入,下面我们来看一个综合的列子:vararr=要求将数组中的项去掉,将不为的值存入一个新的数组,生成新的数组声明一个新的数组varnewArr=遍历for(vari=;i《arr.length;i++){??????//把的数组元素删除掉??????if(arr==){????????continue??????}??????//把这些数据添加到新的数组??????newArr.push(arr)????}????console.log(newArr)?//最后输出查看结果.concat():方法用于连接两个或多个数组,不改变原数组。返回一个新的数组vararrName=vararrName=varnewData=arrName.concat(arrName)console.log(newData).reverse()?逆向排序,原数组也被逆向排序了(倒置varnumArr=varres=numArr.reverse()console.log(res)console.log(numArr).toString()?将数组转成字符串,推荐使用varnumArr=toString()属于一个对象的方法varres=numArr.toString()console.log(res)String它是强制数据类型转换的方法,它不属于数组这个对象.join(“拼接符”)将数组转成字符串,中间以拼接符连接varnumArr=varres=numArr.join(’&’)console.log(res).?slice(start,end):?不修改原数组,将原数组中的指定区域数据提取出来。start开始end结束。??????如果参数是负值表示从倒数开始。不含结束位置??????????????????????????(不包含结束位置)?vararrName=varres=arrName.slice(,)?console.log(res).splice??????删除:用于删除元素,两个参数,第一个参数(要删除第一项的位置,第二个参数(要删除的项数??????插入:向数组指定位置插入任意项元素。三个参数,第一个参数(开始位置,第二个参数(,第三个参数(插入的项??????注意点:第二个参数(为不会删除任何项??????替换:向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数。第一个参数(起始位置,第二个参数(删除的项数,第三个参数(插入任意数量的项?vararrName=????//删除????//varres=arrName.splice(,)????//返回值是被删除的数组元素????//console.log(res)????//插入????//arrName.splice(,,’嘿嘿’,’哈哈’)????//console.log(arrName)????//替换????arrName.splice(,,’都美竹’,’hello’)????console.log(arrName)

  ⑷向js数组中添加元素的种方法

  ⑸push()结尾添加数组.push(元素)????参数?????????????????????描述newelement必需。??要添加到数组的第一个元素。newelement可选。??要添加到数组的第二个元素。newelementX可选。??可添加多个元素。、unshift()头部添加数组.unshift(元素)????参数??????????????????描述newelement必需。??向数组添加的第一个元素。newelement可选。??向数组添加的第二个元素。newelementX可选。??可添加若干个元素。、splice()方法向/从数组指定位置添加/删除项目,然后返回被删除的项目。?????参数??????????????描述index必需。???????????整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。howmany必需。???????要删除的项目数量。如果设置为,则不会删除项目。item,...,itemX可选。??向数组添加的新项目。

  ⑹js数组对象常用的方法

  ⑺数组转换字符串array.join()??//将数组的值拼接成字符串。vararr=arr.join()??//不传参数,默认按【,】进行拼接arr.join(“-“)?//参数是字符串类型按【-】进行拼接数组的增删操作array.push(value,)??//将一个或多个元素添加到数组的结尾,并返回新的长度。array.pop()??//从数组中删除最后一个元素,并返回该元素的值,改变了数组的长度array.unshift(value,)??//将一个或多个元素添加到数组的开头,并返回新的长度。array.shift()??//从数组中删除第一个元素,并返回该元素的值,改变了数组的长度数组的翻转与排序array.reverse()??//翻转数组,返回翻转过的数组array.sort()??//默认排序顺序是根据字符串Unicode码点,比如如果是数字的话,排序结果是小于,因为比较的是第一位vararr=arr.sort()??////sort方法可以传递一个函数作为参数,这个参数用来控制数组如何进行排序vararr=arr.sort(function(a,b)??returna-b;?//按照正序??returnb-a//按照倒序})数组的拼接与截取concat:数组合并,不会影响原来的数组,会返回一个新数组。vararr=vararr=varnewArray=arr.concat(arr)??//;slice:复制数组的一部分到一个新数组,并返回这个新数组,原来的数组不受影响,包含头,不包含尾varnewArray=array.slice(begin,end)vararr=arr.slice(,)//arr.slice(-,-)//splice:以新元素来替换旧元素,以此来修改数组的内容,返回被替换的内容,原数组被改变start:开始位置?deleteCount:删除的个数?items:替换的内容array.splice(start,deleteCount,)vararr=varnewArray=arr.splice(,,“a“,“b“,“c“,“d“)console.log(newArray)??//console.log(arr)??//数组查找元素indexOf方法用来查找数组中某个元素第一次出现的位置,如果找不到,返回-array.indexOf(search,)lastIndexOf()从后面开始查找数组中元素第一次出现位置,如果找不到,返回-?array.lastIndexOf(search,)链接:

  ⑻js数组几种常见的操作方法

  ⑼关于js数组的用法有很多,下面主要针对一些简单的操作,比如合并,反转,添加删除等简单的操作总结一下。

  ⑽关于js数组的用法有很多,下面主要针对一些简单的操作,比如合并,反转,添加删除等简单的操作总结一下。

  ⑾第一:读取数组for循环

  ⑿varay=for(vari=;i《ay.length;i++){

  ⒀console.log(“index:“+i+““+ay)?//index:????index:sdsd????index:sdsd

  ⒁第二:合并数组concat

  ⒂vararr=;vararr=arr.concat(arr);console.log(arr)//;第三:数组变为字符串格式join

  ⒃vararr=arr.join()console.log(arr)//w,e,s

  ⒄第四:删除最后一个元素,针对老数组是删除最后一个,针对新数组是返回最后一个?pop

  ⒅vararr=;vararr=arr.pop();console.log(arr)//?;console.log(arr);//t

  ⒆第五:添加最后一个元素,针对老数组最后一个元素后面添加一个元素,新数组返回元素个数?push

  ⒇vararr=arr.push(“k“);

  ⒈console.log(arr);//;

  ⒉console.log(arr);//

  ⒊第六:shift()和pop()一样,不同的是操作的是开头删除的元素shift(;具体操作不在展示第七:unshiift()和push一样,不同的是操作的是开头添加的元素unshift(;具体操作不再展示

  ⒋第八:反转数组?reverse

  ⒌vararr=arr.reverse()

  ⒍console.log(arr)?//;

  ⒎第九:数组排序sort?a-b正向??b-a反向

  ⒏vararr=vararr=arr.sort(function?(a,b){returna-b;})console.log(arr)//;

  ⒐vararr=arr.sort(function?(a,b){returnb-a;})console.log(arr)//

  ⒑第十:数组截取数组截取的方法主要有slice和splice,另外说到截取我这里随便也把字符串截取带上,字符串截取的方法主要有substr和substring

  ⒒slice使用方法arr.slice(m,n);其中arr为数组,m,n为两个参数,意思是从已有数组中返回选定的元素,截取位置均为下标,其中m必须,为起始位置,可以为负值,n为结束位置(截取位置并不包含。

  ⒓只有起起始值,并且为正,默认的从起始位置一直到整个数组结束,起始下标从开始

  ⒔vararr=vararr=arr.slice()console.log(arr)//?老数组是没有变化的,下面不在列举,都是一样的console.log(arr)//只有起始参数,并且为正值,返回新数组从下标开始截取

  ⒕只有起始值,并且为负,默认的是从起始位置一直到整个数组结束,此处没有起始值,数组的最后一个下标是-,比如此例,如果从-开始取,必定是整个数组

  ⒖vararr=vararr=arr.slice(-)console.log(arr)//只有起始参数,并且为负值,从数组尾部截取元素

  ⒗有起始值和结束值,并且为正,此处需注意下标是从小到大,比如你(,肯定是取不到值的,另外截取的下标个数并不包含最后一个下标

  ⒘vararr=vararr=arr.slice(,)console.log(arr)//?此时是从下标开始到下标,但是需要注意的是并不包含下标,准确的说是-的下标

  ⒙有起始值和结束值,并且为负,此处需注意下秒也是从小到大,同理,比如(-,-也是肯定取不到值的,另外截取的下标个数也并不包含最后一个下标

  ⒚vararr=vararr=arr.slice(-,-)console.log(arr)//

  ⒛有起始值和结束值,并且正负都有

  vararr=vararr=arr.slice(-,)

  //刚刚都看到了,数组下标都是从小到大的,所以说如果正负都有的情况下,理论上应该可以取值的,比如这个例子,-为的小标,为的下标,所以取值应该为?,但是结果并不是这样的console.log(arr)//从这里可以看出他的结果是为空的,所以从负值到结果是取不到的

  vararr=arr.slice(-,)

  //那从负值到正值呢,同样也是取不到值的

  console.log(arr)//

  vararr=arr.slice(,-)

  //那从正直到负值,这个理论上是取不到的,但是看下结果

  console.log(arr)//?从结果可以看出是可以取的原理是的下标为,-的下标为,不包含结束位置下标

  总结:这个方法看着可能会麻烦些(也可能被我写的麻烦啦,比如正到负等,不知道大家都是怎么操作,我一般用这个取值都是只截取正的,所以这个实际操作还是非常简单的。

  splice像数组中添加或者删除元素arr.splice(m,n,index,index,...,indexx)m是起始位置,n是删除元素的个数,index是要添加的元素,在不添加元素的前提下,只有第一个参数是必须的,后面两个都不是必须的,在需要添加元素的情况下,三个元素都是必须的,此方法和slice是不一样的,这个返回的是被删除的元素

  注意看此例,是(,删除两个,如果是(,,则表示删除零个,也就是不删除的意思,如果只有一个参数则表示从这里开始删除,比如是(则为

  vararr=vararr=arr.splice(,)console.log(arr)//注意看此处才是我们要的数组,从下标开始删除删除两个console.log(arr)//此处是我们删除掉的数组

  删除加添加具体的和上面的差不多,主要添加了添加元素的效果,这个也可以添加多个元素

  vararr=vararr=arr.splice(,,“il“)console.log(arr)//?console.log(arr)//

  总结:此方法用的时候,一般也都是只取正值

  substr这个是字符串的用法用法arr.substr(m,n)m必选也可以负值n选填,注意看这个并不是结束为止而是截取的个数

  只有一个参数默认从此下标开始,取后面所有的

  vararr=“sdhgfhf“vararr=arr.substr()console.log(arr)//“sdhgfhf“这个是不变的,下面不再列举console.log(arr)//?“dhgfhf“从下标开始取后面所有的

  vararr=“sdhgfhf“vararr=arr.substr(-)console.log(arr)//?“hf“从下标-开始取后面所有的

  两个参数,从第一个下标开始,截取到下标的长度

  vararr=“sdhgfhf“vararr=arr.substr(,)console.log(arr)//?“dhg“从下标开始取后面所有的同理如果为负值,比如(-,则为“hjf“;后面的始终为长度

  总结:此方法需注意不要和数组的混淆,这个是截取长度的

  substring?用法arr.substring(m,n)两个参数,m必须,起始位置,n选填,截取下标的结束位置,此用法和上面slice有点类似,但是需要注意的是此方法是不支持负值的

  vararr=“sdhgfhf“vararr=arr.substring()console.log(arr)//“dhgfhf“从下标开始取后面所有的

  vararr=“sdhgfhf“vararr=arr.substring(,)console.log(arr)//“dh“从下标开始截取到下标,但是不包含

  总结:此方法不支持负值,只针对下标来截取的

  最后,以上主要是总结的数组的一些简单的操作方法,学无止境,继续努力。

  js中数组去重方法总结

  es有了Set,可以通过成员唯一性去重.使用数组对象的lastIndexOf()方法。(关于la.采用indexOf()获取索引查询去重.利用对象属性存在与否判断,这个方法没什么意思,但是也可行

  js中数组对象如何设置方法

  Array对象用于在单个的变量中存储多个值,在JavaScript中声明一个数组的方法有很多。

  工具原料:器、浏览器

  在JavaScript中声明一个数组的方法是?newArray(),声明一个数组并且存储值的方法如下:

  《html》《body》《script?type=“text/javascript“》var?mycars?=?new?Array()mycars?=?“Saab“mycars?=?“Volvo“mycars?=?“BMW“for?(i=;i《mycars.length;i++){document.write(mycars?+?“《br?/》“)}《/script》《/body》《/html》

  JSArray中的常用方法

  在JsArray中的方法大致分为两类:方法改变原数组&方法生成新数组(不改变原数组.push():向原数组的最后一位添加一个元素。返回数组长度.unshift():向原数组的最前添加一个元素。返回数组长度.pop():截取数组中最后一个元素。返回被截取的元素.shift():截取数组中第一个元素。返回被截取的元素以上四个方法可以放在一起记忆,不要被方面名所误导。.splice():splice(index,howmany,item,...itemX)方法有多个参数可选,常用于分割数组。返回处理后的数组第一个参数:从第n个元素的下标开始截取;第二个参数:从第n个元素的下标开始截取多少个元素;第三到n个参数:将截取的元素替换为什么.sort():sort(fn)方法有一个参数可选,用于给数组排序。在不写参数的情况下会对数组中的元素进行从小到大的顺序排序。但不会识别数字(按照数字ACSLL编码表进行排序可选参数:参数返回一个函数,这个函数中有两个形参.sort(function(a,b){})。形参中的a和b会类冒泡的访问数组中的元素;例:ab分别会选择,、,、,、,、,、,。当a-b》时,交换ab的值;当a-b《时,不动。由此,可在此函数体中写出自定义的排序规则。返回排序后的数组.reverse():倒序排列整个数组。返回数组.concat():concat(arr)将两个数组拼接在一起。返回新数组.join():join(’str’)一个可选参数,返回以一个字符串将数组中的元素拼接成字符串。与str的split(’str’)方法相反,split()是将字符串以一个字符串拆分成数组。.toString():与join()函数不填写参数一样,返回一个一逗号,拼接的字符串。.slice():选取数组中的第n个元素到第n个元素。返回新数组,也可不写参数返回数组的副本。.indexOf():index(item,start)方法有两个参数。返回指定元素在数组中的索引值;如果未找到指定元素,返回-第一个参数:指定的元素第二个参数:从填入的索引开始寻找

  javascript怎么处理数组

  JavaScript由于是弱类型,因此数组元素没有固定类型,而是直接使用Array构造器声明。使用new运算符和Array()构造器生成一个新的数组,如下面的示例。vartheMonths=newArray();theMonths=“Jan“;theMonths=“Feb“;theMonths=“Mar“;theMonths=“Apr“;theMonths=“May“;theMonths=“Jun“;theMonths=“Jul“;theMonths=“Aug“;theMonths=“Sep“;theMonths=“Oct“;theMonths=“Nov“;theMonths=“Dec“;数组下标可以被认为是对象的属性,它是通过数字索引来引用的。注意添加到数组中的已命名的属性不能通过数字来索引;它们是与数组元素分离的。用关键字Array生成数组时,Jscript包含了length属性,该属性记录了数组入口数。如果没有给该属性指定值,则设置长度为且数组没有入口点。如果指定一个数值,则将长度设置为该数。如果指定了不止一个参数,则这些参数被用作数组的入口。另外,参数的数目被赋给length属性。如下面的示例与前一个示例是等价的。vartheMonths=newArray(“Jan“,“Feb“,“Mar“,“Apr“,“May“,“Jun“,“Jul“,“Aug“,“Sep“,“Oct“,“Nov“,“Dec“);

  javascript使用怎么给数组

  首先需要声明和创建一个索引变量,并且必须解决数组在该索引处的值。

  这种结构更短,并且具有更清楚的意图,从列表中检索每个颜色而不必解决列表的位置。

  另一方面,使用in关键字将返回数组的索引键。

  将类似数组的对象转换为JavaScript数组如果不得不处理网页,用来检索特定的元素,像document.getElementsByClassName()这样的函数的结果是类似数组的,包含了所有指定class名称的子元素,但不是严格的数组。ES新特性中Array?类多了一个静态方法?from?,这个方法作用是将个?ArrayLike?对象或者?Iterable?对象转换成一个Array,所谓?ArrayLike?对象指具有数组某些行为的对象。

  使用静态Array.isArray()函数。

  在大多数情况下,只要接口暴露出长度属性,就应该可以将其转换为数组。还可以用于将字符串转换为字符数组。注意,Array.from(str)在功能上等同于str.split(““),虽然可能不够快。在这个例子中,strReverse()函数使用from()将一个字符串转换成一个字符数组,然后使用Arrayreverse()函数来反转顺序,接着是将数组转换为字符串的join(““)函数。

  JSArray(数组)所有操作方法,改变数组方法、不改变数组方法

  定义:返回由所有参数值组成的数组,如果没有参数,就返回一个空数组。目的:Array.of()出现的目的是为了解决上述构造器因参数个数不同,导致的行为有差异的问题。

  参数:第一个参数(必需):要转化为真正数组的对象。第二个参数(可选):类似数组的map方法,对每个元素进行处理,将处理后的值放入返回的数组。第三个参数(可选):用来绑定this。

  ps:splice方法从数组中添加/删除项目,然后返回被删除的项目

  语法:array.splice(index,howmany,item,.....,itemX)参数:index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。howmany:必需。要删除的项目数量。如果设置为,则不会删除项目。item,…,itemX:可选。向数组添加的新项目。返回值:如果有元素被删除,返回包含被删除项目的新数组。

  ps:方法接受两个参数,一个从哪里开始,一个是到哪里结束(但是不包括这个结束的元素本身。如果是负数,就从倒数第几个。

  参数可选:规定排序顺序的比较函数。默认情况下sort()方法没有传比较函数的话,默认按字母升序,如果不是元素不是字符串的话,会调用toString()方法将元素转化为字符串的Unicode(万国码)位点,然后再比较字符。

  比较函数的两个参数sort的比较函数有两个默认参数,要在函数中接收这两个参数,这两个参数是数组中两个要比较的元素,通常我们用a和b接收两个将要比较的元素:

  sort排序常见用法数组元素为数字的升序、降序:

  定义:在当前数组内部,将指定位置的成员复制到其他位置,并返回这个数组。语法:array.copyWithin(target,start=,end=this.length)参数:三个参数都是数值,如果不是,会自动转为数值.target(必需:从该位置开始替换数据。如果为负值,表示倒数。start(可选:从该位置开始读取数据,默认为。如果为负值,表示倒数。end(可选:到该位置前停止读取数据,默认等于数组长度。使用负数可从数组结尾处规定位置。浏览器兼容(MDN):chrome,Edge,Firefox,Opera,Safari,IE不支持

  从上述例子:第一个参数是开始被替换的元素位置要替换数据的位置范围:从第二个参数是开始读取的元素,在第三个参数前面一个元素停止读取数组的长度不会改变读了几个元素就从开始被替换的地方替换几个元素

  参数:第一个元素(必须):要填充数组的值第二个元素(可选):填充的开始位置,默认值为第三个元素(可选):填充的结束位置,默认是为this.length

  使用join方法或者下文说到的toString方法时,当数组中的元素也是数组或者是对象时会出现什么情况?

  join()/toString()方法在数组元素是数组的时候,会将里面的数组也调用join()/toString(),如果是对象的话,对象会被转为字符串。

  如上述栗子:调用数组的toLocaleString方法,数组中的每个元素都会调用自身的toLocaleString方法,对象调用对象的toLocaleString,Date调用Date的toLocaleString。

  该方法的效果和join方法一样,都是用于数组转字符串的,但是与join方法相比没有优势,也不能自定义字符串的分隔符,因此不推荐使用。ps:当数组和字符串操作的时候,js会调用这个方法将数组自动转换成字符串

  ps:字符串也有一个slice()方法是用来提取字符串的,不要弄混了。参数:begin(可选):索引数值,接受负值,从该索引处开始提取原数组中的元素,默认值为。end(可选):索引数值(不包括),接受负值,在该索引处前结束提取原数组元素,默认值为数组末尾(包括最后一个元素)。

  如上:新数组是浅拷贝的,元素是简单数据类型,改变之后不会互相干扰。

  如果是复杂数据类型(对象,数组)的话,改变其中一个,另外一个也会改变

  原因在定义上面说过了的:slice()是浅拷贝,对于复杂的数据类型浅拷贝,拷贝的只是指向原数组的指针,所以无论改变原数组,还是浅拷贝的数组,都是改变原数组的数据。

  ES扩展运算符...合并数组:因为ES的语法更简洁易懂,所以现在合并数组我大部分采用...来处理,...运算符可以实现cancat的每个栗子,且更简洁和具有高度自定义数组元素位置的效果。

  参数:searchElement(必须):被查找的元素fromIndex(可选):开始查找的位置(不能大于等于数组的长度,返回-),接受负值,默认值为。严格相等的搜索:数组的indexOf搜索跟字符串的indexOf不一样,数组的indexOf使用严格相等===搜索元素,即数组元素要完全匹配才能搜索成功。注意:indexOf()不能识别NaN

  参数:searchElement(必须):被查找的元素fromIndex(可选):逆向查找开始位置,默认值数组的长度-,即查找整个数组。关于fromIndex有三个规则:正值。如果该值大于或等于数组的长度,则整个数组会被查找。负值。将其视为从数组末尾向前的偏移。(比如-,从数组最后第二个元素开始往前查找)负值。其绝对值大于数组长度,则方法返回-,即数组不会被查找。

  参数:searchElement(必须):被查找的元素fromIndex(可选):默认值为,参数表示搜索的起始位置,接受负值。正值超过数组长度,数组不会被搜索,返回false。负值绝对值超过长数组度,重置从开始搜索。includes方法是为了弥补indexOf方法的缺陷而出现的:indexOf方法不能识别NaNindexOf方法检查是否包含某个值不够语义化,需要判断是否不等于-,表达不够直观

您可能感兴趣的文章:

相关文章