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. CSS3中text-overflow支持以...代替超出文本

    CSS3中text-overflow支持以...代替超出文本. 1.div1:默认状态.超出文本默认显示在div外 2.div2:text-overflow:ellipsis; 使用text-over ...

  2. Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类

    Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类 转载自http://www.trinea.cn/android/android-common-lib/ 介绍总结的一 ...

  3. [Javascript] Promise

    Promise 代表着一个异步操作,这个异步操作现在尚未完成,但在将来某刻会被完成. Promise 有三种状态 pending : 初始的状态,尚未知道结果 fulfilled : 代表操作成功 r ...

  4. 蘑菇街 App 的组件化之路

    在组件化之前,蘑菇街 App 的代码都是在一个工程里开发的,在人比较少,业务发展不是很快的时候,这样是比较合适的,能一定程度地保证开发效率. 慢慢地代码量多了起来,开发人员也多了起来,业务发展也快了起 ...

  5. poj2255

    题目大意: 树恢复??树复原?? 小Valentine非常喜欢玩二叉树的游戏,他非常喜欢在二叉树的树根上随机的写上一下大写字母,这是她创造的一个例子: D / \ / \ B E / \ \ / \ ...

  6. Java运行环境的配置(JDK和JRE)

    Jdk 表示java开发环境,包含开发环境和运行环境 Jre 表示java运行环境 JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发 ...

  7. x64位windows上程序开发的注意事项

    在Windows上面32位与64位的区别有: 1.指针大小的区别,sizeof(int *)在32bit下面是4个字节,在64bit下面是8个字节 2.size_t的区别,size_t在32bit下面 ...

  8. Android中View和ViewGroup介绍

    1. 概念Android中的View与我们以前理解的“视图”不同.在Android中,View比视图具有更广的含义,它包含了用户交互和显示,更像Windows操作系统中的window. ViewGro ...

  9. oracle中imp命令具体解释

    oracle中imp命令具体解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...

  10. 独立硬盘冗余阵列与HDFS

    http://zh.wikipedia.org/wiki/RAID 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Re ...