1,创建数组

1 //第一种是使用Array构造函数
2 var colors = new Array();
3 var colors = new Array(20);  //创建length为20的数组
4 var colors = new Array("red","blue","green");
5 //第二种基本方式是使用数组字面量表示法
6 var colors = ["red","blue","green"];

2,获取数组长度

1 var colors = ["red","blue","green"];
2 console.log(colors.length);   //3

3,检测数组

1 var colors = ["red","blue","green"];
2 var isArray = Array.isArray(colors);
3 console.log(isArray);        //ture 

4,转换方法

1 var colors = ["red","blue","green"];
2 console.log( colors );  //red,blue,green
3 console.log( colors.toString );     //red,blue,green
4 console.log( colors.valueOf() );   //red,blue,green
5 console.log( colors.join("&") );    //red&blue&green

  toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。

  valueOf()方法返回的还是数组

  join()方法只接受一个参数,即作为分隔符的字符串,然后返回包含所有数组项的字符串。如果不给join()传入任何值,或者给他传入undefined,则使用逗号作为分隔符,IE7及更早的版本会错误的使用字符串undefined作为分隔符。

5,栈方法

1 var colors = ["red","blue","green"];
2 colors.push("black");
3 alert( colors );  //  red,blue,green,black
4 var item = colors.pop();
5 alert( item );   //black
6 alert( colors.length );  //3

6,队列方法

 1 var colors = ["red","blue","green"];
 2 var item = colors.shift();  //取地第一项
 3 alert( item );  //red
 4 alert( colors );   //blue,green
 5
 6 var count = colors.unshift(“red”,"black");  //推入两项
 7 alert( colors );   //red,black,blue,green
 8
 9 var item = colors.pop();  //取得最后一项
10 alert( item );  //green
11 alert( colors );  //red,black,blue

7,重排序方法

 1 var values = [0,1,5,10,15];
 2 values.reverse();    //反转数组项的顺序
 3 alert(values);   //15,10,5,1,0
 4
 5 values.sort();
 6 //sort()方法会调用每个数组项的 toString() 转型方法,然后比较得到的字符串
 7 alert(values);  //0,1,10,15,5
 8
 9 //降序排序
10 function compare(value1,value2){
11   if(value1 < value2){
12       return 1;
13   } else if (value1 > value2){
14       return -1;
15   }else{
16      return 0;
17   }
18 }
19 var values = [0, 1, 5, 10, 15];
20 values.sort(compare);
21 alert(values);  //15,10,5,1,0
22
23 //更简单的比较函数
24 function compare(values1, values2){
25   return value1 - value2;
26 }

8,操作方法

1 var colors = ["red","blue","green"];
2 var colors2 = colors.concat("yellow", ["black", "brown"]);
3 alert( colors2 );  //red,blue,green,yellow,black

 1 var colors = ["red","blue","green","yellow","black"];
 2 var colors2 = colors.slice(1);
 3 var colors3 = colors.slice(1, 4);
 4 alert(colors2);  //blue,green,yellow,black
 5 alert(colors3);  //blue,green,yellow
 6
 7
 8 var colors4 = colors.slice(-2, -1);
 9 var colors5 = colors.slice(3, 4);
10 alert(colors4);  //yellow
11 alert(colors5);  //yellow

  splice方法主要用途是向数组的中部插入项,但是这种方法的方式有以下三种:

1,删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数。

  例如:splice(0,2)会删除数组中的前两项。

2,插入:可以向指定的位置插入任意数量的项,只需提供3个参数:起始位置、0(要删除的项)和要插入的项。如果要插入多项,可以再传入第四、第五,以及任意多个项。

  例如:splice(2,0,"red","green")会从当前数组的位置2开始插入字符串“red”,“green”。

3,替换:可以向指定的位置插入任意的数量的项,且同时删除任意数量的项,只需指定三个参数:起始位置,要删除的参数和要插入的任意数量的项。插入的项数不必和与删除的项数相等。

  例如:splice(2,1,"red","green")会删除当前数组位置2的项,然后再从位置2开始插入字符串“red”,“green”。

9,位置方法

1 var numbers = [1,2,3,4,5,4,3,2,1];
2 alert(number.indexOf(4));  //3
3 alert(number.lastIndexOf(4));  //5
4
5 alert(number.indexOf(4, 4));  //5
6 alert(number.lastIndexOf(4, 4)); //3

//没有找到的情况下返回 -1

10,迭代方法

every(): 对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回 true;

filter(): 对数组中的每一项运行给定的函数,返回该函数会返回true的项的组成的数组。

forEach(): 对数组中的每一项运行给定的函数,这个方法没有返回值。

map(): 对数组中的每一项运行给定的函数,返回该函数调用结果的组成的数组。

some(): 对数组中的每一项运行给定的函数, 如果该函数对任一项返回true,则返回true。

 1 var number = [1, 2, 3, 4, 5, 4, 3, 2, 1];
 2
 3 var everyResult = numbers.every(function(item, index, array){
 4    return(item > 2);
 5 })
 6 alert(everyResult);   //false
 7
 8 var someResult = numbers.some(function(item, index, array){
 9    return(item > 2);
10 })
11 alert(someResult);   //true
12
13 var filterResult = numbers.filter(function(item, index, array){
14    return(item > 2);
15 })
16 alert(filterResult);   //[3, 4, 5, 4, 3]
17
18 var mapResult = numbers.map(function(item, index, array){
19    return item * 2 ;
20 })
21 alert(mapResult);   //[2, 4, 6, 8, 10, 8, 6, 4, 2]
22
23 var i = 0;
24 numbers.forEach(function(item, index, array){
25     i++;
26 })
27 alert(i);   //9

11,归并方法

 1 var values = [1, 2, 3, 4, 5]
 2 var sum = values.reduce(function(prev, cur, index, array){
 3     return prev + cur;
 4 });
 5 alert(sum)  //15//第一次执行回调函数,prev是1,cur是2。第二次,prev是3(1加2的结果),cur是3(数组的第三项)。
 6
 7 var sum = values.reduceRight(function(prev, cur, index, array){
 8     return prev + cur;
 9 });
10 alert(sum)  //15
//第一次执行回调函数,prev是5,cur是4。第二次,prev是9(5加4的结果),cur是3(数组的倒数第三项)。
 

这两个方法都会迭代数组的所有的项,然后构建一个最终返回的值。reduce()是从数组第一项开始,逐个遍历到最后。而reduceRight()则从数组的最后一项,向前遍历到第一项。

接收4个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。

from:《Javascript 高级程序设计》笔记总结

转载于:https://www.cnblogs.com/AllenChou/p/4764713.html

javascript Array类型 方法大全相关推荐

  1. Array 类型方法总结

    Array类型 Array 类型 一.检测数组 二.转换方法 2.1 toLocaleString() 2.2 toString() 2.3 valueOf() 三.栈方法 3.1 push() 3. ...

  2. JavaScript -- array类型

    array我认为是JavaScript中最常用的类型,最近刚好在看JavaScript红宝书,所以来总结一下相关方法. 创建数组 有两种方法创建数组. 使用array构造函数 let array = ...

  3. javascript——Array类型

    今天这节教程不仅仅是阐述ECMAScript3的部分功能,同时也会阐述有关EXMASctip5的很多新的功能. 一.创建 因为它是一个引用类型,自然就需要在使用前先构造它. 我将分成两种方式来讲述 I ...

  4. JavaScript Array reverse 方法:颠倒数组中元素的顺序

    在JavaScript中,Array对象的reverse()方法将颠倒(反转)数组中元素的顺序.arr.reverse()在原数组上实现这一功能,即,reverse()会改变原数组. 例1:将数组元素 ...

  5. JavaScript:Array属性方法

    var arr=[1,2,3,4,5]; console.dir(arr); var pro=Object.getPrototypeOf(arr); console.dir(pro); 来一个个的查看 ...

  6. JavaScript Array 对象方法

    data.sort(function(a,b){return a.time>b.time?1:-1}); http://www.w3school.com.cn/jsref/jsref_obj_a ...

  7. JavaScript中pop() 方法

    定义和用法 pop() 方法用于删除并返回数组的最后一个元素. 返回值 arrayObject 的最后一个元素. 说明 pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1 ...

  8. 字符串String类型 、数组 Array类型

    String类型的方法 方法 描述 charAt, charCodeAt, codePointAt 返回字符串指定位置的字符或者字符编码. indexOf, lastIndexOf 分别返回字符串中指 ...

  9. JavaScript中push() 方法

    push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. 返回值 把指定的值添加到数组后的新长度. 说明 push() 方法可把它的参数顺序添加到 arrayObject 的尾部.它直接修 ...

最新文章

  1. python回归算法_机器学习算法之回归详解
  2. 首次创建maven项目的准备工作
  3. Python爬虫学习笔记(三)——正则表达式
  4. Incorrect string value: '/xE7/xA8/x8B/xE5/xBA/x8F...' for column 'course' at row 1
  5. mysql执行ref_MySql执行分析
  6. duri oracle 连接字符串_C#连接Oracle数据库的连接字符串
  7. 远程桌面服务器无法复制粘贴了怎么解决
  8. 为什么静态static成员函数不能成为virtual虚函数
  9. 顶点计划 顾家与工作问题讨论
  10. linux 防火墙 80端口,Linux配置防火墙,开启80端口、3306端口
  11. 非越狱iPad实现外接键盘全APP五笔输入(IOS14已自带五笔)
  12. 【语言-c#】应用程序正常初始化(0xc000007b)失败。请单击“确定”,终止应用程序。
  13. 微信卡券领用中的问题
  14. 工程打包是什么意思_项目打包命令的意思
  15. Docker概述、安装及基础命令
  16. 招聘总经理的真实试题
  17. 基于java+mysql的Swing+MySQL物业收费系统(java+gui+文档)
  18. 微秒级 TCP 时间戳
  19. 字符串【特殊变态】方法
  20. 产品经理岗位职责说明_关于医药冷链的一些思考——医药物流企业的岗位职责及任职要求精讲(一)...

热门文章

  1. C++中lib和dll解析
  2. oracle中merge into用法解析
  3. pytorch —— 池化、线性、激活函数层
  4. OpenCV--读取图像中任意点的像素值,并显示坐标
  5. 共线方程(百度百科)
  6. Ubuntu16.04下安装Sublime Sublime Text3
  7. 方法重载与重写,返回类型
  8. Cocos2d-x 2 0 4 小心隐藏的retain
  9. Linux学习笔记14
  10. c++读取excel_Java 嵌入 SPL 轻松实现 Excel 文件合并