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. ASP.NET Core 源码学习之 Options[2]:IOptions

    在上一篇中,介绍了一下Options的注册,而使用时只需要注入IOption即可: public ValuesController(IOptions<MyOptions> options) ...

  2. 【jframe】Java Web应用程序框架 - 第01篇:Get Started

    jframe是什么? jframe是一个基于MIT协议开源的java web应用程序框架,汇聚了我们团队之于java web应用程序的核心架构思想以及大量最佳实践,并且持续在实际项目中不断完善优化. ...

  3. 【LeetCode】306. Additive Number

    题目: Additive number is a string whose digits can form additive sequence. A valid additive sequence s ...

  4. 经验之谈——gulp使用教程

    gulp的最实用教程 使用gulp编译less.sass.压缩js等常用功能讲解 gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多 ...

  5. 从栈不平衡问题 理解 calling convention

    最近在开发的过程中遇到了几个很诡异的问题,造成了栈不平衡从而导致程序崩溃. 经过几经排查发现是和调用规约(calling convention)相关的问题,特此分享出来. 首先,讲一下什么是调用规约. ...

  6. usaco training 4.2.2 The Perfect Stall 最佳牛栏 题解

    The Perfect Stall题解 Hal Burch Farmer John completed his new barn just last week, complete with all t ...

  7. Vulkan Tutorial 27 combined image sampler

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Introduction 我们在教程的uniform 缓冲区中首次了解了描述符.在本 ...

  8. P2286 [HNOI2004]宠物收养场

    题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...

  9. js 数组里求最大值和最小值

    // 数组里相邻两个数做比较 取满足条件的那个(以此类推) var arr = [1,3,4,5,6,7]; function Max(array){ var max = array[0]; for( ...

  10. KMP算法(研究总结,字符串)

    KMP算法(研究总结,字符串) 前段时间学习KMP算法,感觉有些复杂,不过好歹是弄懂啦,简单地记录一下,方便以后自己回忆. 引入 首先我们来看一个例子,现在有两个字符串A和B,问你在A中是否有B,有几 ...