javascript Array类型 方法大全
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类型 方法大全的更多相关文章
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
- JavaScript Array 数组方法汇总
JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...
- JavaScript Array filter() 方法
JavaScript Array filter() 方法 var ages = [32, 33, 16, 40]; function checkAdult(age) { return age > ...
- JavaScript中判断对象类型方法大全1
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- JavaScript中Array类型方法总结
Array类型是ECMAScript中最常用的类型之一,ECMAScript中的数组与其他多数语言中的数组有着相当大的区别.ECMAScript数组的每一项可以保存任何类型的数据.这里总结了数组类型的 ...
- JavaScript Array数组方法详解
Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...
- javascript array类型用法
javascript高级编程-Array引用类型用法总结 2016-09-17 | 357 引用类型-Array类型 引用类型是一种数据结构,用于将数据和功能联系起来. 创建对象的方式: ...
- JavaScript -Array.form方法
Array.from方法可以把一个类数组或者课遍历对象转换为一个正真的数组 语法 Array.from(arrayLike[, mapFn[, thisArg]]) 参数 arrayLike 想要转换 ...
- VBScript - 动态 Array 实现方法大全!
记录一些方法,关于 VBScript 中,动态 Array 的实现 ,也适用于 VBA, 很久以前,写 VBA 的时候,就觉得使用 Array 很不方便,因为大小固定, 当时想的是,要是 Array ...
随机推荐
- bzoj1433 [ZJOI2009]假期的宿舍(最大流)
1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1717 Solved: 754[Submit][Stat ...
- SRM 506(2-1000pt)
DIV2 1000pt 题意:一个由n*m的网格组成的棋盘,有四种点,'.'表示空点,'#'表示是墙不能走,'$'表示起点(同样是空点),'1'~'9'表示该点有复活时间为t的怪兽.每次,可以从一个点 ...
- lightoj 1300 边双联通分量+交叉染色求奇圈
题目链接:http://lightoj.com/volume_showproblem.php?problem=1300 边双连通分量首先dfs找出桥并标记,然后dfs交叉着色找奇圈上的点.这题只要求在 ...
- poj3122
题目大意:馅饼(看起来像是一个简单点的题目啊,嘎嘎,希望是的吧) 我的生日即将来临按照习惯我将准备馅饼,不是一个馅饼,我有N块馅饼,有各种各样的味道和尺寸,当我的朋友来参加我的聚会平且他们都能得到一块 ...
- select.poll,epoll的区别与应用
先讲讲同步I/O的五大模型 阻塞式I/O, 非阻塞式I/O, I/O复用,信号驱动I/O(SIGIO),异步I/O模型 而select/poll/epoll属于I/O复用模型 select函数 该函数 ...
- jEdit应用指南【基础篇】
jEdit是Java编写,强大,易用的程序员文本编辑器 jEdit是一个成熟的,设计优秀的程序员文本编辑器,已经有了7年的开发历史.在功能和易用性方面压倒许多昂贵的开发工具时,jEdit在GNU公用许 ...
- python获取网络时间和本地时间
今天我们来看一下如何用python获取网络时间和本地时间,直接上代码吧,代码中都有注释. python获取网络时间 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- slides 带手势的图片滑动效果(用于移动终端)
slidesjs 是基于jQuery开发的一款功能强大,是简单的幻灯片插件,但是需要要应用于移动终端的话,还需要考虑手势滑动时候图片切换功能. 此次,我就在slidesjs基础上扩展了两个swipe属 ...
- C/C++笔试题整理
1. C的结构体和C++结构体的区别 (1)C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数.所以C的结构体是没有构造函数.析构函数.和this指针的. (2)C的结构体对 ...
- checkbox 删除
先创建del.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...