美文网首页
JS中数组遍历API

JS中数组遍历API

作者: 一许青衫一 | 来源:发表于2019-03-21 22:21 被阅读0次

前言

  JavaScript中的数据类型分为基本数据类型(Undefined、Null、Bollean、Number和String)和引用类型(Object、Function、Array等)。从直观上看,前者是最基本的数据构成单位,不能再分割为更小的数据单位了;后者则是由基础数据类型构成的复杂数据组合。再从编程角度上看,变量赋值的情况不同。

var a = 3;
var b = a;
console.log(a,b);  // 3 3
a = 4;
console.log(b);  // 3

上述代码所示,首先声明变量a,并初始化赋值3。再声明变量b,并且将a的值赋值给b,注意这里是按值传递,意思就是指,将变量a的值复制一份给变量b,至此,变量a和变量b的值虽然都是3,但是相互独立,互不相关。

var c = [1,2,3];
var d = c;
console.log(c,d);  // [1,2,3]  [1,2,3]
c.pop();
console.log(c,d) // [1,2]   [1,2]

再看上面一段代码,声明变量c,赋值[1,2,3],然后声明变量d=c。这里就不是按值传递了,而是按引用传递,也就是C语言中的指针,变量d和c指向都是同一个数组,复制的只是存储数组地址的指针。所以当将c移除一个元素之后,d的值也会发生改变。
  接下来步入正题,当我们使用数组存储数据时,经常会遇到对数据进行筛选过滤基于某个条件判定正误的需求。例如目前存在一个数组a,里面存储了八步小学所有小学的学生年龄。在进行某个业务处理时,我需要判断: 1、这个数组中是否有小于6岁的学生;2、获取10岁-13岁年龄段学生个数。为了获取上述两个问题的结果,我们在代码层次上需要做的就是对数组进行遍历。JS本身提供了相关的API,下面总结一下。

filter()

  filter()方法,顾名思义,用于数组中的元素筛选。该方法需要传入一个函数,建议使用es6箭头函数写法,更加简洁优雅。函数的参数等说明查阅MDN。该方法会遍历数组每一个元素,并对每个元素应用该函数,返回符合函数条件的元素组成的新数组

let a = [
    {
        name: 'white',
        category: 'dog'
    },
    {
        name: 'yellow',
        category: 'snake'
    },
    {
        name: 'black',
        category: 'cat'
    },
    {
        name: 'purple',
        category: 'bird'
    },
    {
        name: 'white',
        category: 'dog'
    }
]

const r1 = a.filter((item,index,arr) => item.name.length == 5)
console.log(r1) 
// 返回值 
[ 
    { name: 'white', category: 'dog' }, 
    { name: 'black', category: 'cat' },
    { name: 'white', category: 'dog' } 
]

find()

  find()的含义就如名字一样,是查找符合条件的元素,返回符合条件的第一个元素,然后停止后面元素的遍历。即使后面还有其他符合条件的元素,也不会返回更多。

let a = [
    {
        name: 'white',
        category: 'dog'
    },
    {
        name: 'yellow',
        category: 'snake'
    },
    {
        name: 'black',
        category: 'cat'
    },
    {
        name: 'purple',
        category: 'bird'
    },
    {
        name: 'white',
        category: 'dog'
    }
]

const r2 = a.find(item => item.name == 'white')
console.log(r2)  // { name: 'white', category: 'dog' }

map()

map()的含义是映射,该方法也需要传入一个函数,然后对数组中的每一个元素应用函数,返回改造后的新元素组成的新元素,不改变原数组

forEach()

forEach()同样是对数组的每个元素应用某种操作,但是没有返回值,因为会直接改变原数组。本质上就相当于for循环

every()

every()方法对数组中每一项运行回调函数,如果都返回true,every返回true,
如果有一项返回false,则停止遍历 every()返回false;不写默认返回false。

some()

some()方法对数组中每一项运行回调函数,如果该函数对某一项返回true,则some()返回true;

相关文章

  • JS中数组遍历API

    前言   JavaScript中的数据类型分为基本数据类型(Undefined、Null、Bollean、Numb...

  • 5.17js二维数组

    5.17日js数组遍历 数组API push给数组添加元素 pop:删除并返回数组的最后一个元素 unshift:...

  • JS或Jquery之遍历对象数组取出字符串用逗号拼接方式

    使用JS遍历对象数组方式一如下: 使用JS遍历数组方式二如下: 使用Jquery遍历对象数组如下:

  • js遍历与jQuery遍历

    js遍历与jQuery遍历 js遍历数组和对象 for... var demoArr = ['Javascript...

  • js遍历数组和遍历对象的区别

    js遍历数组和遍历对象的区别

  • 遍历数组和对象2018-08-14

    js数组遍历和对象遍历 针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历;还有性能,优缺点等。 J...

  • 数组2

    js数组遍历和对象遍历 针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历;还有性能,优缺点等。 J...

  • 基础语法

    遍历 js遍历 for-in注意JavaScript的for-in遍历,对于数组来说,x是下标(索引),不是数组元...

  • for循环性能比较

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,...

  • JS遍历相关知识

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,...

网友评论

      本文标题:JS中数组遍历API

      本文链接:https://www.haomeiwen.com/subject/asuhvqtx.html