Javascript处理数组的方法
一 迭代方法
ES5为数组定义了5个迭代方法,这些方法大大方便了处理数组的任务,支持这些方法的浏览器有 IE9+,Firefox2+,Safari3+,Opera9.5+和Chrome。
1 every
对数组中每一项进行给定函数,如果每一项都返回true,则返回true;
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item,index,array){
return item>2;
});
alert(everyResult); //false
2 some
对数组中每一项进行给定函数,如果任意一项都返回true,则返回true;
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.some(function(item,index,array){
return item>2;
});
alert(everyResult); //true
3 filter
对数组中每一项进行给定函数,返回该函数会返回true的项组成的数组;
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.filter(function(item,index,array){
return item>2;
});
alert(everyResult); // [3,4,5,4,3]
4 map
对数组中每一项进行给定函数,返回每次函数调用的结果组成的数组
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.map(function(item,index,array){
return item*2;
});
alert(everyResult); // [2, 4, 6, 8, 10, 8, 6, 4, 2]
5 forEach
对数组中每一项进行给定函数,没有返回值,和for循环类似
var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item,index,array){
if(item!=2){
numbers.splice(index,1,2);
}
});
alert(numbers); // [2, 2, 2, 2, 2, 2, 2, 2, 2]
二 归并方法
ES5新增了两个归并数组的方法:reduce()和reduceRight()。这两个方法迭代数组所有项,然后构建一个最终返回的值。reduce从左到右,reduceRight从右到左。
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,index,array){
return prev + cur;
});
alert(sum); //
reduce()函数接受四个参数;前一个值、当前值、index和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在第二项上,因此第一个参数是数组的第一项,第二个参数是数组的第二项。
三 检测数组
ES3的方法:instanceof
var values = [1,2,3];
if(values instanceof Array){
//对数组进行某些操作
}
ES5的方法:Array.isArray
var values = [1,2,3];
if(Array.isArray(values)){
//对数组进行某些操作
}
四 转换方法
1 toLocaleString() toString() valueOf()
2 join() 将数组转换为字符串,且用分隔符分割
var colors = [1,2,3];
alert(colors.join("|")); // 1|2|3
五 栈方法
栈方法是指Last-In-First-Out后进先出
push() 从数组末尾添加
pop() 从数组末尾移除
六 队列方法
队列方法是First-In-First-Out先进先出
unshift() 从数组前端添加
shift() 从数组前端移除
七 重排序方法
reverse() 反转数组
sort() 排序
var values = [0,1,5,10,15];
values.sort(function(a,b){
return b-a;
});
console.log(values); //[15, 10, 5, 1, 0]
八 操作方法
1 concat() 用于复制或者从尾部添加–>创建新数组
先创建一个当前数组的副本,然后jiang将接到的数组添加到末尾,返回新的数组。如果没有传参数,直接复制返回新构建的数组。
var values = [1,2,3];
var v1 = values.concat();
var v2 = values.concat(4); console.log(values); //[1,2,3]
console.log(v1); //[1,2,3]
console.log(v2); //[1,2,3,4]
2 slice() 用于复制或截取数组–>创建新数组
截取当前数组的一部分创建一个新数组。可以接受一个或者两个参数,只有一个参数时返回指定位置到尾部的数组。两个参数时,返回指定位置到结束位置之前但不包括结束位置的数组。
var values = [1,2,3];
var v1 = values.slice();
var v2 = values.slice(1);
var v3 = values.slice(1,3); console.log(values); //[1,2,3]
console.log(v1); //[1,2,3]
console.log(v2); //[2,3]
console.log(v3); //[2,3]
3 splice() 用于删除、插入、替换,号称最强大的数组方法
3.1 删除:可以删除任意数量的项,需要两个参数,要删除的第一项的位置和要删除的项数。
var values = [1,2,3,4,5,6];
var v = values.splice(0,2); console.log(values); //[3,4,5,6]
console.log(v); //[1,2]
3.2 插入和替换:至少三个参数,第一个是起始位置,第二个是要删除的项,第三个及以后shi yao是要插入或替换的值。
插入demo:
var values = [1,2,3,4,5,6];
var v1 = values.splice(1,0,1,1,1); console.log(values); //[1,1,1,1,2,3,4,5,6]
console.log(v1); //[] 替换demo:
var values = [1,2,3,4,5,6];
var v1 = values.splice(1,2,1,1,1); console.log(values); //[1,1,1,1,4,5,6]
console.log(v1); //[2,3]
九 位置方法
var values = [1,2,3,4,5];
indexOf() 从头找指定项的位置
var v1 = values.indexOf(3); lastIndexOf() 从后往前查位置
var v2 = values.lastIndexOf(3);
Javascript处理数组的方法的更多相关文章
- JavaScript ES6 数组新方法 学习随笔
JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...
- JavaScript中数组Array方法详解
ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的. 1.Array.join()方法 Array.join()方 ...
- JavaScript中数组map()方法
JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果.语法 ? 1 array.map(callback[, thisObject]); 下面是参数的 ...
- javascript中数组的方法
数组的方法 1.concat():连接两个或多个数组 2.indexOf(arg): 查找数组中的arg元素,如果没有,则返回-1,如果有,则返回该元素的最小下标 lastIndexOf(ar ...
- javascript中数组的方法你真的都了解吗?
本篇文章主要讲述ES5中的数组,包括数组两种创建方式,属性,以及 9 大类 ,总共23个操作方法,非常全面,看完之后ES5数组这一部分基本都了解了,下一篇文章,我会讲述ES6中对数组的加成,新增了哪些 ...
- JavaScript,数组,方法;
JavaScript,数组除了常见的增删查改,其他的方法也有很多. let arr = [1, 3, 7, 6, 9, 4, 6, 2]; 1:every方法, 对数组进行遍历,每个元素都满足条件时, ...
- 前端面试之JavaScript中数组的方法!【残缺版!!】
前端面试之JavaScript中数组常用的方法 7 join Array.join()方法将数组中所有元素都转化为字符串并连接在-起,返回最后生成的字 符串.可以指定一个可选的字符串在生成的字符串中来 ...
- JavaScript 中数组 sort() 方法的基本使用
在日常的代码开发中,关于数组排序的操作可不少,JavaScript 中可以调用 sort 方法对数组进行快速排序. 今天,就数组的 sort 方法来学习一下,避免日后踩坑的悲惨遭遇. 概念 sort ...
- JavaScript实现数组去重方法
一.利用ES6 Set去重(ES6中最常用) function unique (arr) { return Array.from(new Set(arr)) } var arr = [1,1,'tru ...
随机推荐
- vs开启,Windows 10磁盘占用100%解决办法
https://www.cnblogs.com/time-is-life/p/8888441.html 最后把Home Group相关的服务都改成禁用. 注意: 即使这两个服务没有启动也不行, 一定要 ...
- springboot装配OkHttp组件
在SpringBoot应用中,发送Http通常我们使用RestTemplate,但有部分组件底层是使用OkHttp进行Http的操作,而且OKHttp也是一个很优秀的HTTP组件. RestTempa ...
- Xamarin.FormsShell基础教程(2)创建Shell解决方案
Xamarin.FormsShell基础教程(2)创建Shell解决方案 创建Shell解决方案 在开发Shell的应用程序时,首先需要创建一个Shell解决方案,其具体操作步骤如下: (1)在VS的 ...
- ES6 - 对象扩展(增强字面量)
/** * 对象的扩展 * * 增强对象字面量 * * 解决问题:缩减代码 */ { /** * 1.属性简表示法 * 变量foo直接写在大括号里面.这时,属性名就是变量名, 属性值就是变量值 */ ...
- axios 设置headers token
axios({ method:"put", url:"....", data:{"action":"refreshToken&qu ...
- WSL记录
cmder(mini版)作为wsl的终端,很好用,可以split屏.但是:千万不要在settings里面设置start up(启动) 里面设置 命令行“bash -cur_console:p1”!目前 ...
- 文件组 'PRIMARY' 已满 解决办法
修改一个字段类型时,报的这个错. 此时需要增加次要数据文件 次要数据文件 次要数据文件包含除主要数据文件外的所有数据文件.有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件.次要数据文件 ...
- MyCat不支持毫秒 bug fix
问题描述:mysql jdbc的驱动(mysql-connector-java-5.1.34.jar)设置的服务器的版本号最低是5.6.4才不会截取时间毫秒,但是现在取的是mycat 的版本号 5.5 ...
- 【SQL骚操作】SqlServer数据库表生成C# Model实体类SQL语句
已知现有表T1 想快速获取cs类结构 /// <summary> /// T1 /// </summary> public class T1 { /// <summary ...
- TCP/IP学习笔记1--概述,分组交换协议
1.TCP/IP 互联网是由许多独立发展的网络通信技术融合而成的,能够使它们不断融合并实现统一的正式TCP/IP技术,TCP/IP使通信协议的统称. TCP/IP协议模型(Transmission C ...