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. 201512读书分享——读《做自己的No.1》“哪一天”是永远不会到来的

    在看这本书的同时,最近也看了一部电影叫做<令人怦然心动的人生整理魔法>,讲一个女孩子平常不善收理,然后房间和人生乱七八糟,她总想着“等哪一天有空了就收拾”.但是,最终一句话打醒了——“哪一 ...

  2. (转)【C++ STL】细数C++ STL 的那些事 -- priority_queue(优先队列)

    装载自http://blog.csdn.net/tianshuai1111/article/details/7652553 一,概述 priority_queue是拥有权值观念的queue,它允许加入 ...

  3. Java实现人民币大写代码解析

    想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...

  4. 【纯干货】SVN使用时应注意的那些事

    一.SVN使用步骤 检出 checkout 更新 update 冲突 confilicte 添加 Add (没有添加项目可不写) 填写svn日志 提交 commit你以为到这儿就结束了吗?....NO ...

  5. ubuntu忘记密码

    Do these two things just to make sure: mount -o remount,rw / This first part remounts the root parti ...

  6. SpringMVC在上传文件的时候提示The current request is not a multipart request错误

    @RequestMapping("/insertOrder") @ResponseBody public  Object insertOrder(String userId,Htt ...

  7. VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池

    VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...

  8. [Angular 2] Custom Validtors

    Create a custom validtor which only accepts the string start with '123'; function skuValidator(contr ...

  9. PHP安全编程:留心后门URL 直接可以通过URL访问(转)

    后门URL是指虽然无需直接调用的资源能直接通过URL访问.例如,下面WEB应用可能向登入用户显示敏感信息: <?php $authenticated = FALSE; $authenticate ...

  10. 《Android开发艺术探索》读书笔记 (9) 第9章 四大组件的工作过程

    第9章 四大组件的工作过程 9.1 四大组件的运行状态 (1)四大组件中只有BroadcastReceiver既可以在AndroidManifest文件中注册,也可以在代码中注册,其他三个组件都必须在 ...