1,创建数组

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

2,获取数组长度

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

3,检测数组

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

4,转换方法

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

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

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

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

5,栈方法

 var colors = ["red","blue","green"];
colors.push("black");
alert( colors ); // red,blue,green,black
var item = colors.pop();
alert( item ); //black
alert( colors.length ); //

6,队列方法

 var colors = ["red","blue","green"];
var item = colors.shift(); //取地第一项
alert( item ); //red
alert( colors ); //blue,green var count = colors.unshift(“red”,"black"); //推入两项
alert( colors ); //red,black,blue,green var item = colors.pop(); //取得最后一项
alert( item ); //green
alert( colors ); //red,black,blue

7,重排序方法

 var values = [0,1,5,10,15];
values.reverse(); //反转数组项的顺序
alert(values); //15,10,5,1,0 values.sort();
//sort()方法会调用每个数组项的 toString() 转型方法,然后比较得到的字符串
alert(values); //0,1,10,15,5 //降序排序
function compare(value1,value2){
if(value1 < value2){
return 1;
} else if (value1 > value2){
return -1;
}else{
return 0;
}
}
var values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values); //15,10,5,1,0 //更简单的比较函数
function compare(values1, values2){
return value1 - value2;
}

8,操作方法

 var colors = ["red","blue","green"];
var colors2 = colors.concat("yellow", ["black", "brown"]);
alert( colors2 ); //red,blue,green,yellow,black
 var colors = ["red","blue","green","yellow","black"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1, 4);
alert(colors2); //blue,green,yellow,black
alert(colors3); //blue,green,yellow var colors4 = colors.slice(-2, -1);
var colors5 = colors.slice(3, 4);
alert(colors4); //yellow
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,位置方法

 var numbers = [,,,,,,,,];
alert(number.indexOf()); //
alert(number.lastIndexOf()); // alert(number.indexOf(, )); //
alert(number.lastIndexOf(, )); //3 //没有找到的情况下返回 -1

10,迭代方法

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

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

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

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

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

 var number = [, , , , , , , , ];

 var everyResult = numbers.every(function(item, index, array){
return(item > );
})
alert(everyResult); //false var someResult = numbers.some(function(item, index, array){
return(item > );
})
alert(someResult); //true var filterResult = numbers.filter(function(item, index, array){
return(item > );
})
alert(filterResult); //[3, 4, 5, 4, 3] var mapResult = numbers.map(function(item, index, array){
return item * ;
})
alert(mapResult); //[2, 4, 6, 8, 10, 8, 6, 4, 2] var i = ;
numbers.forEach(function(item, index, array){
i++;
})
alert(i); //

11,归并方法

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

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

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

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

javascript Array类型 方法大全的更多相关文章

  1. Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解

    Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全   Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...

  2. JavaScript Array 数组方法汇总

    JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...

  3. JavaScript Array filter() 方法

    JavaScript Array filter() 方法 var ages = [32, 33, 16, 40]; function checkAdult(age) { return age > ...

  4. JavaScript中判断对象类型方法大全1

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  5. JavaScript中Array类型方法总结

    Array类型是ECMAScript中最常用的类型之一,ECMAScript中的数组与其他多数语言中的数组有着相当大的区别.ECMAScript数组的每一项可以保存任何类型的数据.这里总结了数组类型的 ...

  6. JavaScript Array数组方法详解

    Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...

  7. javascript array类型用法

    javascript高级编程-Array引用类型用法总结  2016-09-17   |    357 引用类型-Array类型 引用类型是一种数据结构,用于将数据和功能联系起来. 创建对象的方式: ...

  8. JavaScript -Array.form方法

    Array.from方法可以把一个类数组或者课遍历对象转换为一个正真的数组 语法 Array.from(arrayLike[, mapFn[, thisArg]]) 参数 arrayLike 想要转换 ...

  9. VBScript - 动态 Array 实现方法大全!

    记录一些方法,关于 VBScript 中,动态 Array 的实现 ,也适用于 VBA, 很久以前,写 VBA 的时候,就觉得使用 Array 很不方便,因为大小固定, 当时想的是,要是 Array ...

随机推荐

  1. 2015第37周五javascript函数arguments对象巧用一

    Javascript函数的一个巧妙利用:假定action中有一个JSONObject类型的对象data,其值有可能为空,则前台JSP页面的JS代码中想直接通过EL表达式,即${data}的形式访问对象 ...

  2. 调用系统api修改系统时间

    一:截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System. ...

  3. Mac下Intellij IDea发布Java Web项目详解五 开始测试

    测试前准备工作目录 Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intell ...

  4. HDU 4118 树形DP Holiday's Accommodation

    题目链接:  HDU 4118 Holiday's Accommodation 分析: 可以知道每条边要走的次数刚好的是这条边两端的点数的最小值的两倍. 代码: #include<iostrea ...

  5. today's learning of english 2

    1..fumbling    缓慢 笨拙的 2.dancing with impatience in the chekout line sighed exasperation        在安全线外 ...

  6. Android代码混淆

    混淆器(ProGuard) --- 混淆器通过删除从未用过的代码和使用晦涩名字重命名类.字段和方法,对代码进行压缩,优化和混淆.结果是一个比較小的.apk文件,该文件比較难进行逆向project.因此 ...

  7. URL重写:RewriteCond指令与RewriteRule 指令格式(转)

    Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等.本文将针对mod_rewrite和URL匹配的技术细 ...

  8. mysql批量删除指定前缀或后缀表

    今天突然发现我们数据库中多出很多表,后缀名为"copy",预计是navicat直接拷贝导致的,然后要对这些有同样后缀名的表进行删除,假设一个一个选择会非常麻烦,表计较多,在网上找了 ...

  9. 在VisualStudio 2012中通过SmallSharp压缩js及修改web.config

    在项目中加入一个targets文件,取名my.build.targets 在targets文件中加入内容: <?xml version="1.0" encoding=&quo ...

  10. RabbitMQ和kafka从几个角度简单的对比--转

    业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比, 在应用场景方面, RabbitMQ,遵循AMQP协议,由内在高并发的erlan ...