JavaScript中的数组Array方法
push(),pop()方法
push(),pop()方法也叫栈方法,push()可以理解成,向末尾推入,而pop()恰好相反,可以理解成从末尾移除(取得)。
var nums=[,,,];
var counts=nums.push(,);
alert(nums); //1,2,3,4,5,6 改变原数组
alert(counts); //6 返回新数组数组的长度 var num=nums.pop();
alert(nums); //1,2,3,4,5 改变原数组
alert(num); //6 返回数组最后一个值
通过上面的代码可以总结出以下几点关于push(),pop()的规则:
- push(),pop()方法均可以改变原数组;
- push()方法的返回值是新数组的数组长度;
- pop()方法的返回值是原数组最后一个值;
shift(),unshift()方法
shift(),unshift()方法也叫作队列 方法,shift()从头部移除(取到),unshift()理解成从头部推入。
var nums=[1,2,3,4];
var num=nums.shift();
alert(nums); //2,3,4 改变原数组
alert(num); //1 返回数组第一个值
var counts=nums.unshift(-1,0,1);
alert(nums); //-1,0,1,2,3,4 改变原数组
alert(counts) //6 返回新数组长度
通过上面的代码可以总结出以下几点关于shift(),unshift()的规则:
- shift(),unshift()方法均可以改变原数组;
- unshift()方法的返回值是新数组的数组长度;
- shift()方法的返回值是原数组最后一个值;
sort(),reverse()方法
数组当中有两个可用来重排序,其中reverse是按照数组的倒序进行重新排序,sort()是通过字符窜的比较进行排序的。
var arr=[3,1,8,5,10];
arr.reverse();
alert(arr); //10,5,8,1,3
/****************************************/
var arr=[3,1,8,5,10];
arr.sort();
alert(arr); //1,10,3,5,8 按字符串进行比较
alert("10">"5"); //false
alert(10>5); //true
因为sort()在进行排序表比较的过程中会出现如上情况,所以需要给sort()添加一个比较函数;
function compare(a,b){
return a-b;
}
- 当a-b>0,a和b的位置调换;
- 当a-b<=0,a和b的位置不变;
function compare(a,b){
return a-b;
}
var arr=[3,1,8,5,10];
arr.sort(compare);
alert(arr); //1,3,5,8,10
slice(),splice()方法
slice()方法
slice()的操作返回新数组;
- slice()不会改变原数组;
slice()方法可以理解成“提取”;
var arr=[1,2,3,4,5,6];
var arr1=arr.slice(1);
var arr2=arr.slice(1,2);
var arr3=arr.slice(0,4);
var arr4=arr.slice(2,5);
var arr5=arr.slice(-3,-1); console.log(arr1); //[2, 3, 4, 5, 6]
console.log(arr2); //[2]
console.log(arr3); //[1,2, 3, 4]
console.log(arr4); //[3, 4, 5]
console.log(arr5); //[4, 5]
console.log(arr); //[1,2,3,4,5,6] 不改变原数组
splice()方法
splice()与slice()看起来名字类似,但是有很大的不同,功能也比较强大,有三种。
1 删除:
参数:1个或两个;与slice()方法使用类似,但是会改变原数组;
var arr=[1,2,3,4,5,6];
var arr1=arr.splice(1,3);
console.log(arr1); //[2, 3] 新数组
console.log(arr); //[1,4,5] 原数组被改变 /*参数是一个的时候*/ var arr=[1,2,3,4,5,6];
var arr1=arr.splice(1);
console.log(arr1); //[2, 3,4,5,6] 新数组
console.log(arr); //[1] 原数组被改变
2 插入:
参数:三个以上;
第一个:起始位置;
第二个:0;
第三个之后:要插入的项("red","blue")
var colors=["red","blue"];
var newColors=colors.splice(1,0,"yellow","black"); console.log(newColors); //[] 返回一个空数组
console.log(colors); //["red", "yellow", "black", "blue"] 数组被改变
3 替换
参数:三个以上;
第一个:起始位置;
第二个:被替换的个数或删除的个数;
第三个之后:替换后要插入的项("red","blue");
var colors=["red","blue","green"];
var newColors=colors.splice(1,2,"yellow","black"); console.log(newColors); //["blue","green"] 返回被替换的数组
console.log(colors); //["red", "yellow", "black"] 数组被改变
concat()方法
可以理解成是一个连接数组的方法,不会改变原数组
var arr=[1,2,3];
var newArr=arr.concat(4,[5,6]);
alert(arr); //[1,2,3] 不改变原数组
alert(arr1); //[1,2,3,4,5,6] 返回新数组
jion()方法
可以将数组转换成字符串,并改变连接符,不会改变原数组
var colors=["red","blue","green"];
var newColors=colors.join("-"); alert(newColors); //red-blue-green
alert(colors); //["red","blue","green"]
indexOf()和lastIndexOf()方法
查找数组中的元素是否存在,若存在返回找到的一个的索引值,不存在返回-1
indexOf()从前到后查找,lastIndexOf()从后向前查找
均有两个参数,
第一个参数:要查找的项
第二个参数:查找的索引位置起点(可选)
var nums=[1,2,3,4,5,2,7,8]; alert(nums.indexOf(2)); //
alert(nums.lastIndexOf(2)); //
alert(nums.indexOf(2,3)); //
alert(nums.lastIndexOf(2,-4)); //
JavaScript中的数组Array方法的更多相关文章
- JavaScript中的数组Array
抄自:https://www.jianshu.com/p/7e160067a06c js中数组的方法种类众多,有ES5之前版本中存在的,ES5新增,ES6新增等:并且数组的方法还有原型方法和从obje ...
- JavaScript中操作数组的方法
JavaScript Array 对象 对数组操作的方法分为两种 一种是会改变原始数组的变异方法,还有一种是不会改变原始数组的非变异方法. 总结 巧记 Push() 尾部添加 pop() 尾部删除 U ...
- javaScript中的数组迭代方法
ECMAScript5为数组定义了5个迭代方法. 每个方法都接收两个参数:要在每一项上运行的函数 和 (可选的)运行该函数的作用域对象. 传入这些方法中的函数会接收三个参数:数组项的值,该项在数组 ...
- JavaScript中对象数组去重方法
在一次对后端返回的对象数组的操作时想通过indexOf()或者includes()的方法来实现对对象数组的去重但是行不通,因为用indexOf()返回的都是-1,一下记录两种对象数组(更具指定属性)去 ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- Javascript中判断数组的正确姿势
在 Javascript 中,如何判断一个变量是否是数组? 最好的方式是用 ES5 提供的 Array.isArray() 方法(毕竟原生的才是最屌的): var a = [0, 1, 2]; con ...
- S5中新增的Array方法详细说明
ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...
- javascript中的数组扩展(一)
javascript中的数组扩展(一) 随着学习的深入,发现需要学习的关于数组的内容也越来越多,后面将会慢慢归纳,有的是对前面的强化,有些则是关于前面的补充. 一.数组的本质 数组是按照次序排 ...
- JavaScript中的数组详解
JavaScript中的数组 一.数组的定义 数组是值的有序集合,或者说数组都是数据的有序列表. 二.创建数组 [字面量形式] 1.空数组 var arr=[]; 2.带有元素的数组 var arr= ...
随机推荐
- Let's Encrypt 免费SSL证书
Let's Encrypt免费又好用的证书,废话不多说. 假设我的域名为:163.org 1.克隆代码 git clone https://github.com/letsencrypt/le ...
- 安装Dubbo注册中心(Zookeeper-3.4.6)
样例视频教程:http://www.roncoo.com/course/view/f614343765bc4aac8597c6d8b38f06fd Dubbo建议使用Zookeeper作为服务的注册中 ...
- 一个"2-SUM"问题
题目要求: Download the text file here. (Right click and save link as). The goal of this problem is to im ...
- JSP基本语法总结【2】九大内置对象
内置对象也称为内建对象,隐含对象,即无需声明,直接可以在JSP中使用的java对象.JSP的内置对象就是把最常用.重要的几个对象直接创建了. JSP有9大内置对象:Request,Response, ...
- windows平台python 2.7环境编译安装zbar
最近一个项目需要识别二维码,找来找去找到了zbar和zxing,中间越过无数坑,总算基本上弄明白,分享出来给大家. 一.zbar官方介绍 ZBar 是款桌面电脑用条形码/二维码扫描工具,支持摄像头及图 ...
- for(int a:i)在java 编程中的使用
这种有冒号的for循环叫做foreach循环,foreach语句是java5的新特征之一,在遍历数组.集合方面,foreach为开发人员提供了极大的方便. foreach语句是for语句的特殊简化版本 ...
- JavaScript一个生成文档目录的实例
执行结果: <body> <script type="text/javascript"> /** * 这个模块注册一个可在页面加载完成后自动运行的匿名函数, ...
- 由max_allowed_packet引发的mysql攻防大战
1.原因 程序的sql语句比较长.max_allowed_packet默认是1024.于是就报错了.一开始手动改 global max_allowed_packet ,改完后.莫名奇妙被还原.后来改配 ...
- centos 6.5系统判断软件是否安装,如果没安装,则直接使用yum安装,并添加启动项
function install_software(){ software=$1 s=`rpm -qa|grep ${software}` result=$(echo ${s}|grep ${soft ...
- Java之面向对象例子(三) 多态,重写,重载,equals()方法和toString()方法的重写
重写(继承关系) 子类得成员方法和父类的成员方法,方法名,参数类型,参数个数完全相同,这就是子类的方法重写了父类的方法. 重载 在一个类里有两个方法,方法名是完全一样的,参数类型或参数个数不同. 例子 ...