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方法的更多相关文章

  1. JavaScript中的数组Array

    抄自:https://www.jianshu.com/p/7e160067a06c js中数组的方法种类众多,有ES5之前版本中存在的,ES5新增,ES6新增等:并且数组的方法还有原型方法和从obje ...

  2. JavaScript中操作数组的方法

    JavaScript Array 对象 对数组操作的方法分为两种 一种是会改变原始数组的变异方法,还有一种是不会改变原始数组的非变异方法. 总结 巧记 Push() 尾部添加 pop() 尾部删除 U ...

  3. javaScript中的数组迭代方法

    ECMAScript5为数组定义了5个迭代方法. 每个方法都接收两个参数:要在每一项上运行的函数  和  (可选的)运行该函数的作用域对象. 传入这些方法中的函数会接收三个参数:数组项的值,该项在数组 ...

  4. JavaScript中对象数组去重方法

    在一次对后端返回的对象数组的操作时想通过indexOf()或者includes()的方法来实现对对象数组的去重但是行不通,因为用indexOf()返回的都是-1,一下记录两种对象数组(更具指定属性)去 ...

  5. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  6. Javascript中判断数组的正确姿势

    在 Javascript 中,如何判断一个变量是否是数组? 最好的方式是用 ES5 提供的 Array.isArray() 方法(毕竟原生的才是最屌的): var a = [0, 1, 2]; con ...

  7. S5中新增的Array方法详细说明

      ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...

  8. javascript中的数组扩展(一)

     javascript中的数组扩展(一) 随着学习的深入,发现需要学习的关于数组的内容也越来越多,后面将会慢慢归纳,有的是对前面的强化,有些则是关于前面的补充. 一.数组的本质    数组是按照次序排 ...

  9. JavaScript中的数组详解

    JavaScript中的数组 一.数组的定义 数组是值的有序集合,或者说数组都是数据的有序列表. 二.创建数组 [字面量形式] 1.空数组 var arr=[]; 2.带有元素的数组 var arr= ...

随机推荐

  1. Android混淆

    一.为什么要混淆 为了避免apk在发布后被用户通过反编译拿到源代码和资源文件,然后修改资源和代码之后就变成一个新的apk.而经过混淆后的APK,即使被反编译,也难以阅读,注意混淆不是让apk不能阅读, ...

  2. Jquery(一) 初识Jquery,简单使用Jquery。

    距离上一篇博文好像隔了很久的时间了额.好像是堕落了一阵子,前些时间去杭州找工作,被租房的事情给搞懵逼了,然后就回来了,回来在修炼一个月在出去奋斗把!加油,这两天把jquery,easyui和boots ...

  3. iOS 实时录音和播放

    需求:最近公司需要做一个楼宇对讲的功能:门口机(连接WIFI)拨号对室内机(对应的WIFI)的设备进行呼叫,室内机收到呼叫之后将对收到的数据进行UDP广播的转发,手机(连接对应的WIFI)收到视频流之 ...

  4. Linux用户管理-中

    添加用户组命令groupadd 提示:groupadd命令的使用非常简单,但在生产环境中使用的不多,因此,会简单应用即可. 与groupadd命令有关的文件有:/etc/group :用户组相关文件/ ...

  5. mongodb远程连接配置

    mongodb远程连接配置如下: 1.修改配置文件mongodb.conf 命令:vim /etc/mongodb.conf 把 bind_ip=127.0.0.1 这一行注释掉或者是修改成 bind ...

  6. 利用libcurl进行post

    逛百度知道看到有个人提问:http://zhidao.baidu.com/question/1447092283140740700 C写HTTP应用只有疯子才会老老实实的SOCKET编程吧?我后来还是 ...

  7. 第二章:1.0 Django 入门和开发环境

    1. 选择 Django Web框架来做Web接口开发,主要原因是由于学习资料丰富,便于学习. 2. Django 对 python 版本的支持情况. Django 的版本在 1.8 ,1.9 , 1 ...

  8. javascript 玩转Date对象

    前言:最近在做一个日期选择功能,在日期转换的时候经常换到晕,总结一下常用的Date对象的相关用法,方便日后直接查看使用- 1. new Date()的使用方法有: 不接收任何参数:返回当前时间: 接收 ...

  9. Java 容器在实际项目中的应用

    前言:在java开发中我们离不开集合数组等,在java中有个专有名词:"容器" ,下面会结合Thinking in Java的知识和实际开发中业务场景讲述一下容器在Web项目中的用 ...

  10. FineReport填报分页设置

    1. 问题描述 进行FineReport数据填报时,如果数据量过大,由于前端浏览器的性能限制,如果将数据全部展现出来,速度会非常的慢,影响用户体验,这时候大家就会想,填报是否能像分页预览一样进行分页呢 ...