map(映射), reduce(规约), forEach(遍历), filter(过滤),它们都是高阶函数,都是以传入不同的函数来以不同的方式操作数组元。ie都不支持

判断是否为数组

  • Array.isArray(ele)
  1. Array.isArray({})
  2. //=>false
  3. Array.isArray('')
  4. //=> false
  5. Array.isArray([])
  6. //=>true

查找数组内指定元素位置

  • indexOf(ele) / .lastIndexOf(ele)
  1. [1,2,3,4,2,3].indexOf(2) //= > 1 从左到右返回第一个匹配的
  2. [1,2,3,4,2,3].lastIndexOf(2) //=> 4 从右到左第一个匹配元素的位置

遍历数组

  • forEach 为每个元素执行对应的方法

    遍历数组,参数为一个回调函数,回调函数有三个参数:当前元素,元素索引,整个数组
  1. var a=new Array(1,2,3,4,5,6)
  2. a.forEach(function(val,i,array){ //
  3. a[i]=val+1;
  4. });
  • map 遍历数组 ,参数为一个回调函数,返回一个新数组
  1. var a=new Array(1,2,3,4,5,6)
  2. a.map((e,i)=>{
  3. return e*e
  4. });
  5. //=>[1, 4, 9, 16, 25, 36]
  • .reduce(function(v1,v2),value) / .reduceRight(function(v1,v2),value)

    遍历数组,方法有两个参数
  1. 回调函数,把两个值合为一个,并返回结果
  2. value ,一个初始值,可选
  1. //不传initialValue值
  2. var arr = [1,2,3];
  3. arr.reduce(function(pre,cur,index,arr){return pre+cur});
  4. //结果 6
  5. //累加了两次
  6. // 传入initialValue 值
  7. var arr = [1,2,3]
  8. arr.reduce(function(pre,cur,index,arr){return pre+cur},10);
  9. //结果16
  10. //累加了3次,初始值为10
  1. //拼接所有的数组
  2. var flattened = [[0, 1], [2, 3], [4, 5]].reduce( ( acc, cur ) => acc.concat(cur));
  3. //输出[0, 1, 2, 3, 4, 5]
  • filter(function(ele))

    返回原数组的一个子集,回调函数逻辑判断为true则返回,为false和索引为空则不返回,原数组保持不变
  1. //排除掉小于10的值
  2. var isBigEnough=(element)=> {
  3. return element >= 10;
  4. }
  5. var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
  6. // filtered is [12, 130, 44]

数组转字符串

  • join() 将数组里面的所有项拼接成一个字符串
  1. var a=[1,2,3,9,7]
  2. a.join(',')
  3. //=>"1,2,3,9,7"
  4. //注意原数组不会被改变

数组去重

  • 用到Set对象和 Array.from()方法
  1. a=[1,2,3,4,3,3,3,2]
  2. var arr=new Set(a)
  3. Array.from(arr)
  4. //=>[1, 2, 3, 4]
  • filter 删除重复项
  1. arr.filter((item, pos) => arr.indexOf(item) === pos)

javaScript操作数组的常用方法的更多相关文章

  1. JavaScript操作数组

    数组被描述为一个存储元素的线性集合,元素可以通过索引来任意存取. 几乎所有的编程语言都有类似的数据结构,但是Javascript中的数组却略有不同. Javascript中的数组是一种特殊的对象,所以 ...

  2. javascript中数组的常用方法

    数组的基本方法如下 1.concat() 2.join() 3.pop() 4.push() 5.reverse() 6.shift() 7.sort() 8.splice() 9.toString( ...

  3. JavaScript操作数组。

    1.shift:删除原数组第一项,并返回删除元素的值,原数组为空则返回undefined. 2.unshift:将参数添加到原数组开头,并返回数组的长度. 3.pop:删除原数组最后一项,并返回删除元 ...

  4. JavaScript中数组操作常用方法

    JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...

  5. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  6. 使用JavaScript操作DOM节点元素的常用方法(创建/删除/替换/复制等)

    getElementById(id)这是通过id来访问某一元素,最常用的之一,例:<html><body><div id="myid">test ...

  7. 关于javascript里面仿python切片操作数组的使用方法

    其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了..感觉很清爽,而且又开始写js的时候老是想用 ...

  8. 让操作javascript对象数组像.net lamda表达式一样

    让操作javascript对象数组像.net lamda表达式一样 随着web应用程序的富客户端化.ajax的广泛使用及复杂的前端业务逻辑.对js对象数组.json数组的各种操作越来越多.越来越复杂. ...

  9. javascript中数组常用方法总结

    原文:javascript中数组常用方法总结 在javascript的基础编程中,数组是我们最常遇到的,那么数组的一些常用方法也是我们必须要掌握的,下面我们总结一下数组中常用的方法. toString ...

随机推荐

  1. 解决java图形界面label中文乱码

    第一:在你的具有main函数的类也即你应用运行的主类上点击右键,选择Run As中的Run Configurations,如下图:java,awt,中文方框,中文乱码第二,在Arguments标签下的 ...

  2. Hive查看执行日志

    HIVE-如何查看执行日志 HIVE既然是运行在hadoop上,最后又被翻译为MapReduce程序,通过yarn来执行.所以我们如果想解决HIVE中出现的错误,需要分成几个过程 HIVE自身翻译成为 ...

  3. Laravel中如何添加新字段,如何指定在某个字段后而不是添加在最后

    解答:

  4. HTML常用标签查询

    JAVA开发避免不了要接触前端,所以我不得不从0开始学习前端内容!下面分享我自己总结的HTML常用标签查询代码:将下面代码复制粘贴到文本文档,然后另存为html格式;通过file:///文档保存路径的 ...

  5. caffe框架下目标检测——faster-rcnn实战篇操作

    原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1) ...

  6. BZOJ 1835 基站选址(DP+线段树)

    # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream& ...

  7. C++解析(1):C到C++的升级

    0.目录 1.C与C++的关系 2.C到C++的升级 2.1 语言的实用性 2.2 register关键字 2.3 同名的全局变量 2.4 struct关键字 2.5 int f() 与 int f( ...

  8. BZOJ3110 K大数查询 【线段树 + 整体二分 或 树套树(非正解)】

    Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c 如果是2 a b c形式,表示询问从第a个位置到第b个位 ...

  9. Hive(四)hive函数与hive shell

    一.hive函数 1.hive内置函数 (1)内容较多,见< Hive 官方文档>            https://cwiki.apache.org/confluence/displ ...

  10. springMVC和mybatis的原理

    mybatis是什么? mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM框架,mybatis提供输入和输出的映射,需要程序员自己写sql语句,my ...