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. 从JAVA转学习Go——Go在eclipse的环境搭建
  2. as it exceeds the max of 500KB._IT狂人第一季 | 如何考察员工
  3. Unity内实现Android APK版本更新
  4. 路飞学城django
  5. IOS6.0与IOS7.0屏幕适配
  6. 三大无线技术 —— WiFi、蓝牙、HomeRF(无线网卡、WPAN)
  7. FreeBSD tips
  8. 看看华为 Java 编程的军规...
  9. linux刷windows phone,老机焕新生!Lumia 950XL也能跑Win10
  10. iOS 苹果登录(第三方登录)
  11. ACM-Week 2
  12. Android 仿微信实现语音聊天功能
  13. 在百度地图中叠加CAD图及GIS数据展示踩坑记
  14. Davinci Resolve Studio 17d5达芬奇调色软件专业版
  15. 声音/声学成像2021-4-13
  16. java.io.IOException: unexpected end of stream on https://xxx.xxx.xxx.xxx:84/
  17. 回顾2019年度京东集团10件大事:不忘初心,坚定前行
  18. 苹果IWatch真香,包邮送一个!
  19. CS 面试题目总结(问题+答案)
  20. 配置linux使用mail发送邮件到163邮箱

热门文章

  1. 使用git将本地文件上传到远程仓库
  2. 利用matlab小波GUI工具箱对空挡噪声进行滤波
  3. java ltp4j_43、哈工大NLP自然语言处理,LTP4j的测试+还是测试
  4. MinGW 编译zlib libpng libjpeg等
  5. java axis2 开发webservice_利用Axis2开发WebService(3)—用Java实现调用WebService的客户端程序 | 学步园...
  6. android 音乐资源获取失败,android – 获取嵌入式mp3文件嵌入式艺术失败
  7. python 打开网页获取cookies_python 携带cookie获取页面内容
  8. echart雷达图文字挤在一起_【数据可视化·图表篇】雷达图
  9. php将数组值用 分开,PHP将数组中的多个值替换为另一个数组
  10. 汇编指令mrs_专题1:电子工程师 之 软件】 之 【8.arm指令】