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 ...
随机推荐
- move_uploaded_file failed to open stream permission denied
Make sure that: IWPG_user, where user is a system user of the subscription who has rights to "R ...
- 【Kubernetes】深入解析声明式API
在Kubernetes中,一个API对象在Etcd里的完整资源路径,是由:Group(API组).Version(API版本)和Resource(API资源类型)三个部分组成的. 通过这样的结构,整个 ...
- BZOJ3122 [Sdoi2013]随机数生成器 【BSGS】
题目 输入格式 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意:P一定为质数 输出 ...
- P1754 球迷购票问题 (卡特兰数,递推)
题目背景 盛况空前的足球赛即将举行.球赛门票售票处排起了球迷购票长龙. 按售票处规定,每位购票者限购一张门票,且每张票售价为50元.在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值1 ...
- android源码mk文件里的TARGET_OUT指向哪里?
android源码核心变量大都在build/core/envsetup.mk中建立 在该文件中,可以找到 TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_ ...
- ElasticSearch中Filter和Query的异同
如下例子,查找性别是女,所在的州是PA,过滤条件是年龄是39岁,balance大于等于10000的文档: { "query": { "bool": { &quo ...
- Error处理: “非法字符: \65279”的解决办法
将eclipse项目转为maven项目的时候,编译时遇到 “非法字符: \65279”的报错. 出错内容是: *.java:1: 非法字符: \65279 [javac] package com ...
- Day 2 操作系统基础
课前复习新知识 RAID(Redundant Arrays of Independent Disks)独立冗余磁盘阵列 定义:加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵 ...
- Python中%r与%s的区别
%r是rper()方法处理的对象 %s是str()方法处理的对象 其实有些情况下,两者处理的结果是一样的,比如说处理数据类型为int型对象: 例如1: print ('I am %d year old ...
- 升级python2至python3解决依赖关系
1.最小化安装centos7,在升级python3的时候会出现很多包未安装,为解决依赖关系: yum -y install gcc gcc-c++ zlib zlib-devel libffi-dev ...