JavaScript中的Array类型是经常用到的,Array类型也提供了很多方法能实现我们需求,下面我们来总结一下

一、创建Array的方法

  1、使用Array构造函数

    var colors=new Array();

    var colors=new Array(3);//创建一个长度为3的数组

    var colors=new Array("red","blue")//创建一个数组["red","blue"]

    当然,上面的new可以省略不写,如 var colors=Array("red");

  2、直接使用数组字面量

    var colors=["red","blue","green"];

二、Array的方法1

  var colors=["red","blue","green"];

  1、获取数组的长度 colors.length;//3

  2、访问数组第二项colors[1];//blue

  3、更改数据的第二项colors[1]="black";//["red","black","green"]

  4、检查是否是一个数组 colors instanceof Array;//true

  5、colors.toString();//默认会以逗号隔开输出字符串  red,blue,green

  6、colors.join("|");//自定义以“|”隔开输出字符串 red|blue|green

  7、colors.push("brown")//往数组的尾部添加一项

  8、colors.pop()//往数组的尾部删除一项

  9、colors.shift()//删除数组的第一项,并取得该值

  10、colors.unshift("k1","k2")//往数组的前面插入这两项;["k1","k2","red","blue","green"];

  11、colors.reverse()//翻转数组的顺序

  12、colors.sort()或者colors.sort([func]);

  13、concat() 返回一个新数组,不影响原数组 colors.concat()或者colors.concat("k1");

  14、slice(begin,end)从数组下标begin开始到end复制这个数据,不包括下标end,如果是slice(begin)那么就是从下标begin开始到数组的尾部

  15、splice

    splice(0,2)//从下标0开始删除数组的两项

    splice(2,0,"k1","k2")从下标2开始删除0项,紧接着从这里插入两项

    splice(2,1,"k1")//从下标2开始删除一项,紧接着从这里插入一项

  16、indexOf("item")//从数组头开始查找某项,找到后返回下标值,找不到返回-1

  17、lastIndexOf("item")//从数组尾开始查找某项,找到后返回下标值,找不到返回-1

三、Array方法2:迭代方法(ECMAScript5)

  1、every():对数组的每一项运行给定的函数,每一项都返回true,则返回true(不影响原数组)

var numbers=[1,2,3,2,1];
//判断是否每个数字都大于2
var flag=numbers.every(function (item,index,array) {
return item>2;
});

  2、filter():对数组中每一项运行给定的函数,返回该函数为true的项(不影响原数组)

var numbers=[1,2,3,2,1];
//返回大于2的项
var array=numbers.filter(function (item,index,array) {
return item>2;
});

  3、forEach():对数组中的每一项执行给定的函数,不返回值 (不影响原数组)

var numbers=[1,2,3,2,1];
//输出每一项的平方
numbers.forEach(function (item,index,array) {
console.log(item*2);
});

  4、map():对数组的每一项执行给定的函数,返回每次函数调用后结果组成的数组(不影响原数组)

var numbers=[1,2,3,2,1];
//返回每一项的平方
var array=numbers.map(function (item,index,array) {
return item*item;
});

  5、some():对数组的每一项执行给定的函数,如果有一项返回true则,则返回true

var numbers=[1,2,3,2,1];
var flag=numbers.some(function (item,index,array) {
return item>2
});

三、Array方法3:归并方法(ECMAScript5)

  1、reduce()方法从数组的第一行开始,逐个遍历到最后

  2、reduceRight()方法从数组的最后一项开始,逐个向前遍历

var numbers=[1,2,3,4,5];
var result=numbers.reduce(function (prev,cur,index,array) {
//prev:前一个运算的结果,刚开始时候为数字的第一项
//cur:数组的当前项
//index:当前数组的下标
//array:执行这个运算的数组,当前为numbers
console.log("prev:"+prev);
console.log("cur:"+cur);
console.log("index:"+index);
console.log("array:"+array);
console.log("=============");
return prev+cur;
});

JavaScript 数组-Array的方法总结的更多相关文章

  1. Javascript数组Array的方法总结!

    1.join() 将数组的元素组成一个字符串,以分隔符连接,如果省略则默认逗号为分隔符,该方法只接收一个参数:分隔符.此方法不会改变原数组. let arr = [1,2,3,4] let arr1 ...

  2. Javascript数组Array的forEach方法

    Javascript数组Array的forEach扩展方法 forEach是最常用到的数组扩展方法之一,相当于参数化循环数组,它简单的在数组的每一个元素上应用传入的函数,这也意味着只有存在的元素会被访 ...

  3. JavaScript 数组(Array)对象的方法

    JavaScript 数组(Array)对象的方法 concat() 描述:用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 原型:arrayObject.conc ...

  4. js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法

    var  questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf ...

  5. javascript数组Array强大的splice()方法

    javascript的Array数组提供了强大的splice()方法, 用于对数组元素的增删改 1.删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数) 删除: ...

  6. JavaScript 数组(Array)方法汇总

    数组(Array)常用方法; 数组常用的方法:concat(),every(), filter(), forEach(),  indexOf(), join(), lastIndexOf(), map ...

  7. Javascript数组求和的方法总结 以及由斐波那契数列得到的启发

    一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...

  8. JavaScript 数组(Array)对象

    Array 对象 Array 对象用于在单个的变量中存储多个值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, e ...

  9. JavaScript 数组相关基础方法

    文章来源于:https://www.cnblogs.com/dolphinX/p/3353590.html 创建数组 构造函数 1.无参构造函数,创建一空数组 var a1=new Array(); ...

随机推荐

  1. [转]SQL Server 2005 Integration Services (SSIS) (3) - Business Intelligence Development Studio

    本文转自:http://blog.csdn.net/me_online/article/details/1546281 三,SQL Server Integration Services 开发环境– ...

  2. 【Todo】机器学习系列

    看了这篇文章很好,有很多指导性思想: http://www.cnblogs.com/tornadomeet/p/3395593.html 另外这个人的系列文章里面也有很多干货. 就看这个系列的吧: h ...

  3. JDK 7中的函数式编程思想[转载]

    原文作者的观点是Lambda表达式一定会包含在JDK 7中,而全文也着重介绍了这方面的知识,作者认为函数式编程的概念也将出现在JDK 7中. Lambda表达式 Lambda表达式并不是什么新概念,自 ...

  4. DefaultMessageStore-CommitLog-MapedFileQueue.allocateMapedFileService初始化链

    刚刚在研究rocketmq生成文件的源码.零时记录一下MapedFileQueue中属性AllocateMapedFileService allocateMapedFileService的初始化链. ...

  5. [Angular] AfterContentChecked && AfterViewChecked

    AfterContentChecked & AfterViewChecked are called after 'OnChanges' lifecycle. And each time 'ng ...

  6. 深入理解C#中的泛型(一)

    为什么要有泛型? 请大家思考一个问题:由你来实现一个最简单的冒泡排序算法.假设没有使用泛型的经验.可能会毫不犹豫的写出下面代码: public class SortHelper { //參数为int数 ...

  7. 近期面试Android的一些面试题

    近期一个多月面试过一下公司(均为实习): 腾讯:内推一面卒. 正式校招拿到offer 阿里:内推二面卒. 蘑菇街:面完三面技术面,等待HR面 网易:拿到offer. 能够看到,大部分问题不难,可是能回 ...

  8. Java中abstract class 和 interface 的解释和他们的异同点(转)

    (一)概述    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract ...

  9. RDS经典网络平滑迁移到VPC的混访方案

    专有网络VPC(Virtual Private Cloud)之间在逻辑上彻底隔离,可以使您在阿里云上构建出一个隔离的网络环境,其安全性及性能都高于经典网络,已成为云上用户首选的网络类型.为满足日益增多 ...

  10. Linux的定时器

    在服务端程序设计中,与时间有关的常见任务有: 获取当前时间,计算时间间隔: 定时操作,比如在预定的时间执行一项任务,或者在一段延时之后执行一项任务. Linux 时间函数 Linux 的计时函数,用于 ...