js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧。不过不会针对每个方法进行讲解,我只是选择其中的一些来讲。

首先来讲一下push和pop方法,这两个方法只会对数组从尾部进行压入或弹出,而且是在原数组进行操作,任何的改动都是会影响到操作的数组。push(args)可以每次压入多个元素,并返回更新后的数组长度。pop()函数每次只会弹出最后一个结尾的元素,并返回弹出的元素,如果是对空组数调用pop()则返回undefined。 如果参数是数组则是将整个数组当做一个元素压入到原来的数组当中。并不会产生类似concat合并数组时产生的“拆分现象”,下面看例子

例1:

var oldArr=[1,2,3];

alert(oldArr.push(4,[5,6]))–>5(这里只会将[5,6]当做一个元素来计算,返回更新后的数组长度5)

此时oldArr–>[1,2,3,4,[5,6]]

alert(oldArr.pop())–>[5,6](这里弹出最后一个元素[5,6],而不是6)

此时oldArr–>[1,2,3,4]

oldArr.pop()–>4

oldArr.pop()–>3

oldArr.pop()–>2

oldArr.pop()–>1

oldArr.pop()–>undefined(空数组弹出)

现在讲完push和pop再来看一下unshift和shift

这两个方法都是通过对数组的头部进行的操作,其他基本跟push和pop类似,但是在IE中unshift方法返回的是undefined

例2:

var oldArr2=[1,2];

oldArr2.unshift(3)–>undefined

此时oldArr2为–>[3,1,2]

oldArr2.shift()–>3

此时oldArr2为[1,2]

接下来看一下功能强大一点的splice,利用其可以进行数组随意位置的元素添加,删除 ,其操作也是在原有

数组上修改

splice(start,deleteCnt,args) 中的start表示开始操作下标,deleteCnt表示从开始下标开始(包括该元素)要删除的元素个数,删除操作返回删除的元素。args表示用来替换删除掉的那些元素(可以有多个参数),start和deleteCnt必须为数字,如果不是数字尝试转换,转换失败当做0来处理。splice必须至少有一个start元素,否则不做任何操作。deleteCnt不存在表示删除start及后面的全部元素(IE下,取0不做删除)。start可以为负数,表示从数组右边结尾处开始计算。deleteCnt如果为负数不做删除,因为不可能删除负个元素。

好了解释就到这边现在看一下例子,通过例子或许可以更好的理解

例3:

var oldArr3=[1,2];

oldArr3.splice()–>”"(返回空的字符串,不做任何操作,操作后oldArr3–>[1,2])

oldArr3.splice(“”)–>[1,2](“”尝试转换为数字失败返回0,所以删除1,2,操作后oldArr3–>[],但是IE下有点恶心,不做任何操作)

oldArr3.splice(“1a”)–>同上

odlArr3.splice(0,2)–>[1,2](“从下标0的元素开始,删除两个元素1,2因此删除后oldArr3–>[])

oldArr3.splice(0,-1)–>”"(从0下标开始删除-1个元素,故等于没做任何操作,操作后oldArr3–>[1,2])

oldArr3.splice(1,1)–>2(从下标1 开始删除1个元素,即删除2,所以删除后oldArr3–>[1])

oldArr3.splice(1,4)–>2(从下标1 开始删除4个元素,1开始只有1个元素,故删除2,所以删除后oldArr3–>[1])

oldArr3.splice(-1,0,3)–>”"(从下标-1即2元素开始删除0个元素,然后添加元素3,所以操作后oldArr3–>[1,3,2])

oldArr3.splice(-1,1,3)–>2(从小标-1即2元素开始删除1个元素,然后添加元素3,操作后为oldArr3–>[1,3])

OK接下来开始讲concat,这个方法用来连接两个或多个数组,该数组不会改变原来的数组只会返回新的一个数组。连接的时候参数如果为数组,则连接的是数组中的元素。因为比较简单直接开始例子

例4:

var oldArr4=[1,2];

oldArr4.concat(3,4)–>[1,2,3,4]

oldArr4.concat(3,4,[5,6])–>[1,2,3,4,5,6](这边添加的是[5,6]中的元素5和元素6)

oldArr4.concat(3,[4,[5,6]])–>[1,2,3,4,[5,6]](这边最里层的元素[5,6]整个用来添加,而不是拆开)

下面来讲数组中的排序方法sort

sort(function)是针对原数组进行的排序,不会生成新的数组。默认sort()不带参数时按照数组中的元素转换成字符串进行比较,比较的时候按照字符在字符编码中的顺序进行排序,每个字符都有一个唯一的编码与其对应。

且看下面例子

var oldArr5=[3,1,5,7,17] 看这个一般观念上以为对oldArr5排序时oldArr5.sort()会按照数字从小到大排序即返回[1,3,5,7,17],但是看一下结果其实不然返回的是[1,17,3,5,7] 因为比较的时候都被转成字符串。然后对字符串进行一个个的比较如果第一个字符相同则比较第二个,否则直接返回比较结果,因为”17″

sort(function)方法除了默认的无参外还可以传入自定义的排序方法,这样排序的结果完全可以由自己来控制了,想怎么排就怎么排,是不是很爽啊,呵呵。 一般自定义的function比较函数,包含两个参数分别代表用来比较的左元素和右元素。然后通过一定方式返回一个结果,如果返回值大于0表示交换左右元素,如果返回值小于0或等于0则表示不不会交换左右元素。现在来看一下例子

例5:

按照数字从大到小排列原有数组

var oldArr5=[3,1,5,7,17]; //初始数组

function mySort(left,right){

if(left

return 1;}//如果左边元素小于右边元素则交换两数

else{

return -1;}//如果左边元素大于等于右边元素不做交换

}

当然上面的方法可以简化为funaction mySort(left,right){ return right-left;}

//按照偶数在前奇数在后排序

var oldArr6=[3,6,7,18];//初始数组

function mySort2(left,right){

if(left%2==0)return -1;//如果左边元素为偶数则不交换

if(right%2==0)return 1; //如果右边元素为偶数则交换

return 0; //不交换

}

最后的slice不多讲,只是用来截取原数组中的部分元素,返回一个新的数组,原数组不会改变,其操作方式跟string的slice类似

var oldArr7=[1,2,3,4];

oldArr7.slice(0)–>[1,2,3,4]

oldArr7.slice(0,2)–>[1,2]

oldArr7.slice(0,0)–>[]

oldArr7.slice(0,-1)–>[1,2,3]

oldArr7.slice(-3,-1)–>[2,3]

oldArr4.slice(-1,-3)–[]

java数组如何pop_Js数组的操作push,pop,shift,unshift等方法详细介绍相关推荐

  1. js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

    js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...

  2. arr的push,pop,slice.....各种使用方法详细介绍

    arr的push,pop,slice-各种使用方法 arr.push(); 向数组的末尾追加元素 会修改原数组 返回值:修改后的length值 可以追加多个 arr[1,2,3]; arr1[4,5, ...

  3. push计算机语言,数组的操作push,pop,shift,unshift详解

    JS中的数组提供了四个操作,以便让我们实现队列与堆栈! 小理论: 队列:先进先出 堆栈:后进先出 实现队列的方法: shift:从集合中把第一个元素删除,并返回这个元素的值. unshift: 在集合 ...

  4. js数组操作(push,pop,shift,unshift,slice,splice,concat,sort)

    js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首先来讲一下push和pop方法,这两个方法只会对数组从尾部 ...

  5. js 数组操作的push pop shift unshift 等方法

    1.push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度. var arr = [1,2,3,4,5] arr.push(6)//添加一个元素 arr.push(7,8)//可以一次 ...

  6. vue2实现数组push/pop/shift/unshift方法重写

    // 获取数组原型 const orginalPrototype = Array.prototype// 备份用来重新操作 const arrPrototype = Object.create(org ...

  7. vue之push() pop() shift() unshift() splice() sort() reverse()等等

    一.变更方法 Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. let arr = ['a', 'b', ' ...

  8. Perl 数组应用详解(push, pop, shift, unshift)

    Perl的数组操作有四大常用函数: push:从数组的末尾加入元素. pop :从数组的末尾取出元素 shift: 从数组的开头取出元素 unshift:从数组的开头加入元素 1.push #!/us ...

  9. javascript学习之数组的使用一 push pop shift unshift 方法

    push() 向数组的末尾添加一个或多个元素,返回数组的当前长度 pop() 从数组的末尾删除一个元素,返回删除的元素的值 unshift() 向数组的前端添加一个或多个元素,返回数组的当前长度 sh ...

最新文章

  1. Windows环境下Unicode编程总结和将ANSI转换到Unicode 将Unicode转换到ANSI
  2. 为TypeScript项目生成API文档
  3. python中json和字典相互转化
  4. YY项目之TabLayout自定义Tab的title
  5. java代码审查规范
  6. c语言小学生加法考试题程序4,c语言编程题及答案.doc
  7. JavaScript能力测评经典题及答案(一:数组之查找组元素位置)
  8. python程序化 k线指定时间更新_Python之路 14 K线时间序列管理器
  9. 基于java的信访项目_基于JAVA的某省人大信访信息系统的设计与实现
  10. 如何实现一平台多系统_自动化设备数据采集系统如何实现
  11. 《FPGA全程进阶---实战演练》第十一章 VGA五彩缤纷
  12. MQTT测试工具推荐
  13. 开发人员都需要知道的几款优秀数据库管理工具
  14. latex常用中文模板,拿走直接很使用
  15. 古代帝王有哪些“恩爱夫妻”?
  16. excel查重复_个人永久性免费Excel催化剂功能第98波零代码零距离轻松接触并拥有金融大数据...
  17. 如何记账并生成收入、支出的图表
  18. 唯物辩证法-马克思主义辩证法
  19. SRS十周年杭州站沙龙技术备忘录
  20. Win11电脑没有声音如何解决

热门文章

  1. shell脚本编程之控制脚本
  2. 作业11:最优前缀码
  3. 高等数学·同济七版+线性代数第六版+概率论与数理统计第四版(教材+辅导)
  4. python添加文字水印中间旋转45度_pythonpdf添加水印
  5. 基于YOLOV5的数据集标注&训练,Windows/Linux/Jetson Nano多平台部署全流程
  6. [SLAM] a bite of SLAM
  7. impala的substr从第几位截到最后一位_【题解循环嵌套】书的最后一页(粉丝求助)...
  8. 第六课.Python函数(三)
  9. 造完家怎么拆东西_我今天把老家的宅基地拆了!
  10. datagridvie设置行高列宽_DataGridView使用技巧(七、设定列宽和行高自动调整)----.NET...