javascript Array method总结
0.创建
Javascript创建数组的基本方式有两种。第一种是使用Array构造函数。
var colors = new Array();
var colors = new Array(20);
var colors = new Array("red","blue","green");
另外一种是省略掉new符号:
var colors = Array(3);
var colors = Array("Greg");
1.检测数组
if(value instanceOf Array){}
if(Array.isArray(value)){}
2.转换方法
toLocalString() 把数组转换为本地数组,并返回结果。
toString() 把数组转换为字符串,并返回结果。
valueOf() 返回数组对象的原始值。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
示例:
var colors = ["red", "blue", "green"];
console.log(colors.toString()); //red,blue,green
console.log(colors.valueOf()); //["red", "blue", "green"]
console.log(colors); //["red", "blue", "green"]
console.log(colors.join(",")); //red,blue,green
console.log(colors.join("||")); //red||blue||green
3.栈方法
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
pop() 删除并返回数组的最后一个元素。
示例:
var colors = new Array();
var count = colors.push("red", "green");
console.log(count); // 2
count = colors.push("black");
console.log(count); //3
var item = colors.pop();
console.log(item); //black
conosole.log(colors); //["red", "green"]
4.队列方法
shift() 删除并返回数组的第一个元素。和push()一起组成数组的前端删除,末端插入的队列。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。与pop()一起组成前端插入,末端删除的队列。
示例:
var colors = new Array();
var count = colors.push("red", "green");
console.log(count); // 2
var item = colors.shift();
console.log(item); //red
console.log(colors); //["green"]
var count = colors.unshift("red", "blue");
console.log(count); //3
console.log(colors); //["red", "blue", "green"]
5.重排序方法
reverse() 颠倒数组中元素的顺序。
sort() 对数组的元素进行排序。
示例:
var values = [1,2,3,35,5];
values.reverse();
console.log(values); //[5, 35, 3, 2, 1]
values.sort();
console.log(values); //[1, 2, 3, 35, 5]
function compare(v1,v2){
if(v1 < v2)return -1;
else if(v1 > v2) return 1;
else return 0;
}
values.sort(compare);
console.log(values); //[1, 2, 3, 5, 35]
6.操作方法
concat() 连接多个数组。
slice() 基于当前数组中的一个或多个项创建新数组。
splice() 向数组中部插入项。
示例:
var colors = ["red","green","blue"];
var colors2 = colors.concat("yellow", ["black", "brown"]);
console.log(colors); //["red", "green", "blue"]
console.log(colors2); //["red", "green", "blue", "yellow", "black", "brown"]
var colors3 = colors2.slice(1);
var colors4 = colors2.slice(1,2);
console.log(colors3); //["green", "blue", "yellow", "black", "brown"]
console.log(colors4); //["green"]
//splice删除
var removed = colors2.splice(0,2);
console.log(removed); //["red", "green"]
console.log(colors2); //["blue", "yellow", "black", "brown"]
//splice插入
var inserter = colors2.splice(1, 0, "orange", "purple");
console.log(inserter); //[]
console.log(colors2); //["blue", "orange", "purple", "yellow", "black", "brown"]
//splice替换
var replacer = colors.splice(1, 1, "red", "green");
console.log(replacer); //["orange"]
console.log(colors2); //["blue", "red", "green", "purple", "yellow", "black", "brown"]
7.位置方法
indexOf() 从数组开头开始向后查找。
lastIndexOf() 从数组的末尾开始向前查找。
示例:
var colors = ["red", "green", "blue", "black", "green", "black"];
console.log(colors.indexOf("green")); //1
console.log(colors.indexOf("green", 2)); //4
console.log(colors.lastIndexOf("green")); //4
console.log(colors.lastIndexOf("green", 3)); //1
console.log(colors.indexOf("yellow")); //-1
8.迭代方法
every() 对数组中的每一项运行给定的函数,如果函数的每一项都返回true,则返回true。
filter() 对数组中的每一项运行给定的函数,返回该函数返回为true的项组成的新数组。
forEach() 对数组中的每一项运行给定的函数。这个方法没有返回值。
map() 对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的新数组。
some() 对数组中的每一项运行给定的函数,如果函数对任一项返回true,则返回true。
示例:
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var everyResult = numbers.every(function(item, index, array){return item > 2;});
console.log(everyResult); //false
var someResult = numbers.some(function(item, index, array){return item > 2;});
console.log(someResult); //true
var filterResult = numbers.filter(function(item, index, array){return item > 2;});
console.log(filterResult); //[3, 4, 5, 4, 3]
var mapResult = numbers.map(function(item, index, array){return item *2;});
console.log(mapResult); //[2, 4, 6, 8, 10, 8, 6, 4, 2]
9.归并方法
ECMAScript5新增的方法:
reduce() 迭代数组中的每一项,然后构建最终的返回值。从第一项开始。
reduceRight() 迭代数组中的每一项,然后构建最终的返回值。从最后一项开始。
示例:
var values = [1,2,3];
var sum = values.reduce(function(prev, cur, index, array){return prev+cur;});
console.log(sum); //6
var sumRight = values.reduceRight(function(prev, cur, index, array){return prev+cur;});
console.log(sumRight ); //6
----完
javascript Array method总结的更多相关文章
- JavaScript : Array assignment creates reference not copy
JavaScript : Array assignment creates reference not copy 29 May 2015 Consider we have an array var a ...
- JavaScript Array.map
Array.prototype.map() History Edit This article is in need of a technical review. Table of Contents ...
- JavaScript Array 对象
JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值: var cars = ["Saab", "Volvo", & ...
- JavaScript Array(数组)对象
一,定义数组 数组对象用来在单独的变量名中存储一系列的值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, elem ...
- Javascript Array.prototype.some()
当我们使用数组时,查找数组中包含某个特殊的项是非常常见的动作.下面例子是一个简单的实现: 01 planets = [ 02 "mercury", 03 " ...
- [Javascript ] Array methods in depth - sort
Sort can automatically arrange items in an array. In this lesson we look at the basics including how ...
- Javascript Array 方法整理
Javascript Array 方法整理 Javascript 数组相关方法 说明 大多数其它编程语言不允许改变数组大小,越界访问索引会报错,但是 javascript不会报错,不过不建议直接修改a ...
- javascript array操作
首先来看一下怎么判断一个对象是不是数组: 1.Array.isArray(obj) 调用数组的isArray方法 2.obj instanceof Array 判断对象是否是Array的实例 3.Ob ...
- JavaScript Array 数组方法汇总
JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...
随机推荐
- linux -- 查找(find)命令 一
find: find命令是非常有用的linux命令,我们可以用它来根据指定的搜索条件来搜索整个文件系统来查找文件或目录. 基本的‘find file’命令 find . -name "foo ...
- mysql 基本查询
查询不重复的记录.有时需要将表中的记录去掉重复后显示出来,可以用 distinct 关键字来实现:mysql> select ename,hiredate,sal,deptno from emp ...
- E. A Magic Lamp
E. A Magic Lamp Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 32768KB 64-bit integer IO ...
- Codeforces Round #352 (Div. 1) B. Robin Hood
B. Robin Hood 讲道理:这种题我是绝对不去(敢)碰的.比赛时被这个题坑了一把,对于我这种不A不罢休的人来说就算看题解也要得到一个Accepted. 这题网上有很多题解,我自己是很难做出来的 ...
- MapReduce和Hadoop流
MapReduce:分布式计算的框架 MapReduce是一个软件框架,可以将单个计算作业分配给多台计算机执行. MapReduce在大量节点组成的集群上运行.它的工作流程是:单个作业被分成很多小份, ...
- 【Luogu】P3567Kur-Couriers(主席树)
题目链接 数组大小开到一千二百万才过- - 可以把数先离散化再全都加到主席树中. 对于一个区间[from,to] 取中间点mid 看看小于mid的数有多少个,如果个数的两倍<=to-from+1 ...
- HackerRank# Candies
原题地址 LeetCode上也有这道题,直接扫一遍就行了,连数组都不用开,感觉像是蕴含了某种动归的思想在里面,要不怎么是个动归题呢 代码: #include <cmath> #includ ...
- NOIP一系列模拟赛小结
NOIP越发接近了,于是自己也跟着机房的几位师兄一起做了几次NOIP模拟赛,收获颇多. #1-T1:求点集中的点能否只用三条与坐标轴平行的直线就能全部被经过,其实只要将横纵坐标排序后逐个点检查下就行. ...
- BZOJ 2194 快速傅立叶之二 ——FFT
[题目分析] 咦,这不是卷积裸题. 敲敲敲,结果样例也没过. 看看看,卧槽i和k怎么反了. 艹艹艹,把B数组取个反. 靠靠靠,怎么全是零. 算算算,最终的取值范围算错了. 交交交,总算是A掉了. [代 ...
- [luoguP1415] 拆分数列(DP)
传送门 t(i,j)表示下标从i到j的数 d[i]表示以i结尾的最小的数的下标 d[i]=max(j) (1<=j<=i && t(d[j-1],j-1)<t(j,i ...