JavaScript常用数组方法
JavaScript数组方法有以下这些:
forEach() 方法对数组的每一个元素执行一次提供的函数。
map() 方法创建一个新数组,其结果是该数组都执行一次函数,原函数保持不变。
filter() 方法使指定函数测试数组的每一个元素,并放回一个通过元素的新数组。
some() 方法测试该数组有元素通过了指定函数的测试,如果有返回true,否则,返回false。
every() 方法测试该数组是否全部通过指定函数测试,全部通过返回true,否则,返回false。
Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
Array.isArray() 方法适用于确定传递的值是否为Array
slice() 方法将数组的一部分浅拷贝,返回到从开始到结束(不包括结束)选择的新数组对象。原始数组不会被修改。
splice() 方法通过删除现有元素或添加新元素来更改数组的内容,第一个参数索引位置,第二个参数删除的个数,第三个参数添加新内容
find() 方法返回数组中满足提供的测试函数的第一个元素的值。
语法: arr.find(callback[, thisArg])
findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
语法: arr.findIndex(callback[, thisArg])
indexOf()方法返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。
语法: arr.indexOf(searchElement)
arr.indexOf(searchElement[, fromIndex = 0])
lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。
语法: arr.lastIndexOf(searchElement[, fromIndex = arr.length - 1])
includes() 方法用来判断当前数组是否包含某指定的值,如果是,则返回 true,否则返回 false。
语法: arr.includes(searchElement)
arr.includes(searchElement, fromIndex)
forEach 遍历数组
|
1
2
3
4
5
|
var arr = ["a", "b", "c"];arr.forEach(function(element,index) { console.log(element,index); }); |
map 返回新数组,为当前元素加字符串m
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var arr = ["a", "b", "c"];arr.map(function(element,index) { return element += "m";});// 将给定数组的元素转成整数["1", "2", "3"].map(parseInt); // [1, NaN, NaN]// 等价于["1", "2", "3"].map(function(value,index,array){ return parseInt(value,index);});parseInt(3,1); // NaN parseInt(string, radix) 函数将给定的字符串以指定基数解析成为整数。 |
var arr = ["郭靖","黄蓉","洪七公","黄药师","欧阳锋","杨康","穆念慈"];
function arrayToJson(arr){
var narr = null,
json=null;
narr = arr.map(function(currentValue,index){
return "\""+index+"\":\""+currentValue+"\"";
});
json = "{"+narr.join(",")+"}";
return JSON.parse(json);
} //{0: "郭靖", 1: "黄蓉", 2: "洪七公", 3: "黄药师", 4: "欧阳锋", 5: "杨康", 6: "穆念慈"}
filter 返回大于10的元素
|
1
2
3
4
5
6
7
|
// 12, 130, 44var arr = [12, 5, 8, 130, 44];arr.filter(function(value){ return value>10});// 等价于arr.filter((value)=>value>10); |
some 判断当前数组有元素大于10的元素
|
1
2
3
4
|
var arr = [12, 5, 8, 130, 44];arr.some(function(value){ // true return value>10}); |
every 判断当前数组所有元素是否都大于10
|
1
2
3
4
|
var arr = [12, 5, 8, 130, 44];arr.every(function(value){ // false return value>10}); |
创建数组
Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
|
1
2
3
4
5
6
7
8
9
|
Array.of(3); // [7]Array(3); // Array(3) 创建一个包含 3 个 undefined 元素的数组if(!Array.of){ Array.of = function(){ return Array.prototype.slice.call(arguments); }} |
判断是否数组
Array.isArray() 方法适用于确定传递的值是否为Array
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Array.isArray([]); // trueArray.isArray(new Array()); // trueArray.isArray(Array.prototype); // trueArray.isArray(Array.of(undefined)); // trueArray.isArray(null); // falseArray.isArray(undefined); // falseif(!Array.isArray){ Array.isArray = function(){ return Object.prototype.toString.call(arguments) === "[object Array]"; }} |
slice() 方法将数组的一部分浅拷贝,返回到从开始到结束(不包括结束)选择的新数组对象。原始数组不会被修改。
|
1
2
3
4
5
|
var arr = ["zero", "one", "two", "three"];var sliced = arr.slice(1,3);console.log(arr); // ["zero", "one", "two", "three"]console.log(sliced); // ["one", "two"] |
splice() 方法通过删除现有元素或添加新元素来更改数组的内容,第一个参数索引位置,第二个参数删除的个数,第三个参数添加新内容
|
1
2
3
4
5
6
7
8
9
|
var arr = ["aaa","bbb","ccc"];// 在索引1的位置添加一个新元素dddarr.splice(1,0,"ddd"); // ["aaa", "ddd", "bbb", "ccc"]// 在索引2的位置删除一个元素arr.splice(2,1); // ["aaa", "ddd", "ccc"]// 在索引1的位置删除一个元素并添加两个元素arr.splice(1,1,"eee","fff"); // ["aaa", "eee", "fff", "ccc"] |
例一、find()方法 查找数组中第一个大于等于15的元素
|
1
2
3
4
|
var num = [10,3,5,15,100,1].find(function(elem, index){ return elem>=15;});console.log(num) // 15 |
例二、findIndex() 查找数组中第一个大于等于15的元素的位置(索引)
|
1
2
3
4
|
var num = [10,3,5,15,100,1].findIndex(function(elem, index){ // 15 return elem>=15;});console.log(num) // 3 |
例三、indexOf () 查找5所在的位置,默认索引位置从零开始
|
1
2
3
|
[0,1,2,3,4,5,6].indexOf(5); // 5 从索引0的位置往后查找[0,1,2,3,4,5,6].indexOf(5,5); // 5[0,1,2,3,4,5,6].indexOf(5,10); // -1 从索引10的位置往后查找 |
例四、lastIndexOf() 查找5所在的位置,默认索引位置当前数组长度减一
|
1
2
3
4
|
[0,1,2,3,4,5,6].lastIndexOf(5); // 5 从索引位置数组长度减一向前查找[0,1,2,3,4,5,6].lastIndexOf(5, 6); // 5[0,1,2,3,4,5,6].lastIndexOf(5, 10); // 5[0,1,2,3,4,5,6].lastIndexOf(5, 1); // -1 从索引1的位置向前查找 |
例五、includes
|
1
2
3
|
[0,1,2,3,4,5,6].includes(5); // true 从索引0位置往后查找是否存在5元素,是[0,1,2,3,4,5,6].includes(10); // false[0,1,2,3,4,5,6].includes(5,10); // false 从索引10位置往后查找是否存在10元素,否 |
forEach() 方法对数组的每一个元素执行一次提供的函数。
map() 方法创建一个新数组,其结果是该数组都执行一次函数,原函数保持不变。
filter() 方法使指定函数测试数组的每一个元素,并放回一个通过元素的新数组。
some() 方法测试该数组有元素通过了指定函数的测试,如果有返回true,否则,返回false。
every() 方法测试该数组是否全部通过指定函数测试,全部通过返回true,否则,返回false。
forEach 遍历数组
|
1
2
3
4
5
|
var arr = ["a", "b", "c"];arr.forEach(function(element,index) { console.log(element,index); }); |
map 返回新数组,为当前元素加字符串m
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var arr = ["a", "b", "c"];arr.map(function(element,index) { return element += "m";});// 将给定数组的元素转成整数["1", "2", "3"].map(parseInt); // [1, NaN, NaN]// 等价于["1", "2", "3"].map(function(value,index,array){ return parseInt(value,index);});parseInt(3,1); // NaN parseInt(string, radix) 函数将给定的字符串以指定基数解析成为整数。 |
filter 返回大于10的元素
|
1
2
3
4
5
6
7
|
// 12, 130, 44var arr = [12, 5, 8, 130, 44];arr.filter(function(value){ return value>10});// 等价于arr.filter((value)=>value>10); |
some 判断当前数组有元素大于10的元素
|
1
2
3
4
|
var arr = [12, 5, 8, 130, 44];arr.some(function(value){ // true return value>10}); |
every 判断当前数组所有元素是否都大于10
|
1
2
3
4
|
var arr = [12, 5, 8, 130, 44];arr.every(function(value){ // false return value>10}); |
JavaScript常用数组方法的更多相关文章
- 迟早要知道的JS系列之常用数组方法
常用数组方法 一.不会改变原始数组的方法: 即访问方法,下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值. 1. concat() ** 语法:** Java ...
- ES6新增的常用数组方法(forEach,map,filter,every,some)
ES6新增的常用数组方法 let arr = [1, 2, 3, 2, 1]; 一 forEach => 遍历数组 arr.forEach((v, i) => { console.log( ...
- JavaScript Array 数组方法汇总
JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...
- JavaScript常用工具方法
JavaScript常用工具方法 1.日期格式化 2.将日期字符串转换为Date,字符串格式为(yyyy-mm-dd hh:mm:ss) 3.JS获取当天00:00:00时间和23:59:59的时间 ...
- javascript中常用数组方法详细讲解
javascript中数组常用方法总结 1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔 ...
- JavaScript Array数组方法详解
Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...
- js中常用数组方法concat join push pop slice splice shift
javascript给我们很多常用的 数组方法,极大方便了我们做程序.下面我们来介绍下常用的集中数组方法. 比如 concat() join() push() pop() unshift() shif ...
- Javascript中数组方法reduce的妙用之处
Javascript数组方法中,相比map.filter.forEach等常用的迭代方法,reduce常常被我们所忽略,今天一起来探究一下reduce在我们实战开发当中,能有哪些妙用之处,下面从red ...
- 技巧收藏|10个JavaScript常用数组操作方法
摘要:这篇文章,向大家展示了在日常开发中,数组有哪些小技巧值得借鉴和学习. 在web前端开发第二阶段Javascript中,数组是一个重要且常见的知识点,我们经常将数据存储在数组中,遍历数组或替换数组 ...
随机推荐
- jenkins+maven+Tomcat8实现热部署
个人记录 公司使用jenkins实现代码自动更新并部署 采用jenkins安装方式为war包,版本为:2.138.3,启动方式为Tomcat启动jenkins, 该博客操作步骤有些地方进行简化,各位需 ...
- P3165 [CQOI2014]排序机械臂
题目描述 为了把工厂中高低不等的物品按从低到高排好序,工程师发明了一种排序机械臂.它遵循一个简单的排序规则,第一次操作找到高度最低的物品的位置 P1P_1P1 ,并把左起第一个物品至 P1P_1P1 ...
- 虚拟主机、ECS云服务器、VPS区别汇总
想做一个网站,但是在各种类型的服务器琳琅满目,现在总结一下市场上常见的几种服务器. 1.虚拟主机 虚拟主机就是利用虚拟化的技术,将一台服务器划分出一定大小的空间,每个空间都给予单独的 FTP 权限和 ...
- AFO NOI2018退役——菜鸡一直是菜鸡
游记DAY -INF连续几天的模拟让我确信我就是菜鸡.以及相信yxd,sjq,cyl神犇一定能够稳了. DAY 0报道,天很热热热热热热热热热. DAY 1开幕式,杜子德很热热热热热热热热热. DAY ...
- 部署puppet master/agent模型
自己画的一个简单的架构图 agent端每隔30分钟到master端请求与自己相关的catalog. 各节点时间要同步. 依赖DNS,各节点能通过主机名能解析. 1.同步时间 # yum install ...
- IDEA之插件篇
强烈推荐小伙伴们,安装以下插件:
- NOIP2015D2总结
今天居然考了一套题.NOIP2015D2. 这是当年的战绩: 360的一等奖线.好强啊! 之前做过2015的D1,但我确实不会做landlord……今天曾祥瑞学长和林可学姐都来了,他们说,朱昶宇AK, ...
- [POI2015]WIL-Wilcze doły
题目描述 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段连续区间,使得该区间内所有数字之和不超过p. 输入格式: 第一行包含三个整数 ...
- python检测服务器是否ping通
好想在2014结束前再赶出个10篇博文来,~(>_<)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么积极了,如果说这1天的时间我能赶出几篇精致的博文,你们信不信 ...
- ssh或scp自动化问题
http://note.youdao.com/noteshare?id=1ac4cb9469f818dbe579d721aae4e914