js数组push方法使用注意
js 数组的push方法,想必大家都知道是向数组末尾添加元素,但是有一个很关键的点需注意:
引自MDN
返回值
当调用该方法时,新的 length 属性值将被返回。
var sports = ["soccer", "baseball"];
var total = sports.push("football", "swimming"); console.log(sports);
// ["soccer", "baseball", "football", "swimming"] console.log(total);
//
数组push之后返回的是length,而不是新的数组,如果不清楚这点,在使用过程中回遇到很大的坑。
顺带记一下其他几个数组的方法返回值:
pop()
pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。 let a = [1, 2, 3];
a.length; // a.pop(); // console.log(a); // [1, 2]
a.length; //
arr.pop()
返回值
从数组中删除的元素(当数组为空时返回undefined)。
shift()
shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。 let a = [1, 2, 3];
let b = a.shift(); console.log(a);
// [2, 3] console.log(b);
//
返回值
从数组中删除的元素; undefined 如果数组为空。 arr.shift()
unshift()
unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度。 let a = [1, 2, 3];
a.unshift(4, 5); console.log(a);
// [4, 5, 1, 2, 3] arr.unshift(element1, ..., elementN)
参数列表
element1, ..., elementN
要添加到数组开头的元素。
返回值
当一个对象调用该方法时,返回其 length 属性值。
concat()
concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。 var arr1 = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f']; var arr3 = arr1.concat(arr2); // arr3 is a new array [ "a", "b", "c", "d", "e", "f" ]
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
参数
valueN
将数组和/或值连接成新数组。
返回值
新的 Array 实例。
splice()
splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容。
返回值
由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。
slice()
slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象,原始数组不会被修改。
返回值:
一个含有提取元素的新数组
总结:
开头和结尾添加都是返回数组的长度;
开头和结尾的删除都是返回删除的元素;
splice()返回被删除的元素;
concat返回新的数组;
slice返回提取的数组;
js数组push方法使用注意的更多相关文章
- 浅谈6种JS数组遍历方法的区别
本篇文章给大家介绍一下6种JS数组遍历方法:for.foreach.for in.for of.. each. ().each的区别.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. ...
- js数组的方法小结
js中数组是一种非常常用数据结构,而且很容易模拟其他的一些数据结构,比如栈和队列.数组的原型Array.prototype内置了很多方法,下面就来小小总结一下这些方法. 检测数组就不用多说了,使用EC ...
- js 数组去重方法汇总
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- JS进阶篇--JS数组reduce()方法详解及高级技巧
基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...
- 再探JS数组原生方法—没想到你是这样的数组
最近作死又去做了一遍javascript-puzzlers上的44道变态题,这些题号称"JS语言专业八级"的水准,建议可以去试试,这里我不去解析这44道题了, ...
- js 数组清空 方法 汇总
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- js 的push方法
JavaScript push() 方法 定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. 语法 arrayObject.push(newelement1,newele ...
- JS数组遍历方法
常用数组遍历方法: 1.原始for循环 var a = [1,2,3]; for(var i=0;i<a.length;i++){ console.log(a[i]); //结果依次为1,2,3 ...
- JS数组常见方法的深浅拷贝分类
一.涉及浅拷贝类方法,会改变原数组 1,pop(): 删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值.如果数组已经为空,则 pop() 不 改变数组,并返 ...
随机推荐
- 可嵌入图片视频jQuery全屏滑块
分享一款可嵌入图片视频jQuery全屏滑块.这是一款可定制的滑块幻灯片代码,支持键盘箭头切换.效果图如下: 在线预览 源码下载 实现的代码. html代码: <script type ...
- java好用的邮件发送
1.action代码 // 发送邮件 String strEMAIL = Tools.readTxtFile(Const.EMAIL); //读取邮件配置 String strEM[] = strEM ...
- Android 提示应用“正在发送大量短信”的解决办法
. . . . . 临近过年了,又到了发送各类拜年短信的时刻了.虽然转发各类拜年短信已经显得越来越没年味,但是依然有很对人乐此不疲.为朋友送去祝福自然是好事,可是转发来的短信本身发送者就并没有投入太多 ...
- Django: AttributeError: 'str' object has no attribute 'resolve'
再次重温Django的时候,遇到了这个错误.看了页面上,没啥有用的信息.遂谷歌一下,原来是一个很低级的错误:It's because you forgot to type the word " ...
- where子查询
限定查询(WHERE子句) 之前的查询是将一张表的全部记录查询出来,那么现在如果希望可以根据指定的条件查询的话,则必须指定限定查询. 格式: 的雇员的信息 l 使用“<>”完成 l S ...
- [Issue]git做rebase时,弹出编辑器为nano,不会使用
今天在做一个branch的rebase, 执行git rebase -i master的时候,自动弹出了nano 编译器,捣鼓了很久,还是不会编译,保存退出,执行Ctrl+X就自动结束了,查了下,需要 ...
- [RTC]系统时间NTP和RTC同步,Debian的时区配置
转自:http://www.cnblogs.com/jiu0821/p/5999566.html Debian的时区配置 一. 修改时区 1. 查看当前时区 命令 : "date -R&qu ...
- Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction ...
- CycleGAN 各种变变变
转载自 简单介绍了一下GAN和DCGAN的原理.以及如何使用Tensorflow做一个简单的生成图片的demo. Ian Goodfellow对GAN一系列工作总结的ppt,确实精彩,推荐:独家 | ...
- 小措施提高Linux服务器安全
禁止root远程登录 作为默认系统管理账号root是最容易攻击的目标.禁止通过ssh远程登录是绝对必须的. 方法: 编辑 /etc/ssh/sshd_config PermitRootLogin no ...