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, 44
var 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([]);                      // true
Array.isArray(new Array());             // true
Array.isArray(Array.prototype);         // true
Array.isArray(Array.of(undefined));     // true
 
Array.isArray(null);                    // false
Array.isArray(undefined);               // false
 
if(!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的位置添加一个新元素ddd
arr.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, 44
var 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常用数组方法的更多相关文章

  1. 迟早要知道的JS系列之常用数组方法

    常用数组方法 一.不会改变原始数组的方法: 即访问方法,下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值. 1. concat() ** 语法:** Java ...

  2. ES6新增的常用数组方法(forEach,map,filter,every,some)

    ES6新增的常用数组方法 let arr = [1, 2, 3, 2, 1]; 一 forEach => 遍历数组 arr.forEach((v, i) => { console.log( ...

  3. JavaScript Array 数组方法汇总

    JavaScript Array 数组方法汇总 1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度 var arr = [1,2,3,4,5] console.log(arr.p ...

  4. JavaScript常用工具方法

    JavaScript常用工具方法 1.日期格式化 2.将日期字符串转换为Date,字符串格式为(yyyy-mm-dd hh:mm:ss) 3.JS获取当天00:00:00时间和23:59:59的时间 ...

  5. javascript中常用数组方法详细讲解

    javascript中数组常用方法总结 1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔 ...

  6. JavaScript Array数组方法详解

    Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...

  7. js中常用数组方法concat join push pop slice splice shift

    javascript给我们很多常用的 数组方法,极大方便了我们做程序.下面我们来介绍下常用的集中数组方法. 比如 concat() join() push() pop() unshift() shif ...

  8. Javascript中数组方法reduce的妙用之处

    Javascript数组方法中,相比map.filter.forEach等常用的迭代方法,reduce常常被我们所忽略,今天一起来探究一下reduce在我们实战开发当中,能有哪些妙用之处,下面从red ...

  9. 技巧收藏|10个JavaScript常用数组操作方法

    摘要:这篇文章,向大家展示了在日常开发中,数组有哪些小技巧值得借鉴和学习. 在web前端开发第二阶段Javascript中,数组是一个重要且常见的知识点,我们经常将数据存储在数组中,遍历数组或替换数组 ...

随机推荐

  1. redis4.0.10安装与常用命令

    ----------- redis安装 ------------------------------------------- 安装reids:https://redis.io/download (4 ...

  2. [Offer收割]编程练习赛23-freeloop

    A. H国的身份证号码I dfs裸题. 时间复杂度\(O(n^k)\). #include <bits/stdc++.h> #define FOR(i,a,b) for (int i=a; ...

  3. ansible部署(pip安装)

    centos7 pip安装 ansible 首先ansible基于python2.X 环境 默认centos都已经安装好了python2环境 安装可选性 ansible可以通过源码,yum,pip等方 ...

  4. DAY6-Python学习笔记

    前记: 坚持写学习笔记今天是第六天了,今天事情有点多想起来还没写赶快补起来,学习Python已经快一个星期了,大部分的知识点已经跟着廖雪峰老师的教程了解了一下,由于自学能力不强还有很多知识点掌握不牢固 ...

  5. XOR and Favorite Number CodeForces - 617E(前缀异或+莫队)

    题意原文地址:https://blog.csdn.net/chenzhenyu123456/article/details/50574169 题意:有n个数和m次查询,每次查询区间[l, r]问满足a ...

  6. Day24-图片验证码----待续

    一,上课所讲---------没听懂!!! 1,首先,图片验证码不能放到客户浏览器的cookie上,否则,客户可以直接从它的浏览器上拿到,然后自动提交,这样的话,验证码就没有任何用处了.所以图片验证码 ...

  7. 【刷题】BZOJ 1537 [POI2005]Aut- The Bus

    Description Byte City 的街道形成了一个标准的棋盘网络 – 他们要么是北南走向要么就是西东走向. 北南走向的路口从 1 到 n编号, 西东走向的路从1 到 m编号. 每个路口用两个 ...

  8. Android Studio 使用VCS版本控制

    1.SVN的配置: 如果项目使用的是SVN配置,那么除了乌龟SVN GUI工具外,你还得下载Subversion, 因为AS要用其中的xx.exe命令行执行程序, 下载地址:https://www.v ...

  9. Linux下的wine生活(QQ/微信/Office)

    My wine life like windows 本篇内容涉及QQ.微信.Office在wine中的使用配置. QQ 到deepin下载轻聊版. 如果安装了crossover,那么将其中opt/cx ...

  10. Centos7.2安装tomcat+Myeclipse(遇到的一些问题与总结)+web项目实战

    工作环境:centos7.2 PS:没有耐心的同学可以直接跳到后面的安装方法,对于安装方法大多是网上的,我只是做相关收集和总结 给个tomca和Myeclipset折腾的半死,现在做一些总结1.一定要 ...