• 数组(array-api)二


    forEach( )与map( )

     1     var arr = [5,32,5,7,2,3]
     2     // forEach的时候传递一个函数进来,我们只需要把他写进来,不需要调用
     3     // 这个函数就会被forEach去调用
     4     // arr有多少个元素,函数就会被调用多少遍
     5     // 每一次调用的时候都会传递两个实参过来
     6     // 所以我们要写两个形参,第一个形参是值,第二个形参是索引
     7 
     8     // arr.forEach(function (item, index) {
     9     //   console.log(item, index)
    10     // })
    11 
    12     // 每一次遍历的时候返回一个值,这些值会放进一个新的数组里
    13     // map可以用来修改数据,但是不会修改arr本身,而是得到一个新的数组
    14     var arr1 = arr.map(function (item, index) {
    15       console.log(item, index)
    16       return item * (1+0.3)
    17     })
    18     console.log(arr1)
    19 
    20     // 只是把索引为奇数的变成1.3倍
    21     // 偶数的也得return本身
    22     // 每一次都要写返回值,否则新的数组里会有undefined
    23     var arr2 = arr.map(function (item, index) {
    24       if (index%2) {
    25         return item * (1+0.3)
    26       }
    27       return item
    28     })
    29     console.log(arr2)

    filter()

     1     var arr = [5,7,3,7,3,2]
     2     // 过滤
     3     // 每一次遍历的时候都要返回一个条件(布尔值)
     4     // 当这个条件得结果为true的时候,当前值就会被保留,否则就被过滤掉
     5     // 最终用一个新的数组来存结果
     6 
     7     // 如果不写return,默认返回值是undefined,会隐式转换为false,相当于每次都返回的false
     8     var arr1 = arr.filter(function (item, index) {
     9       console.log(item, index)
    10       return item > 4
    11     })
    12     console.log(arr1)

    some()和every()

     1     var arr = [5,2,5,2,6,7]
     2     // some的最终结果是一个布尔值
     3     // 每一次遍历的时候返回一个条件
     4     // 只要在遍历过程中有一条数据满足条件(在所有的返回值当中只要有一个true)
     5     // 整个some的结果就是true
     6     // 在遍历的过程中只要发现了一个true就停止遍历
     7       // var is = arr.some(function (item, index) {
     8       //   console.log(item, index)
     9       //   return item > 10
    10       // })
    11       // console.log(is)
    12 
    13     // every 必须每一次遍历返回的条件都是true,结果才为true,否则就是false
    14     // 只要任意一个不满足条件,遍历就结束,最终得到false
    15     var is = arr.every(function (item, index) {
    16       console.log(item, index)
    17       return item % 2 === 0
    18     })
    19     console.log(is)

    reduce()

     1     var arr = [3,5,2,6,2]
     2     // current
     3     // 计算arr所有元素的累加和
     4     // 第一次的res是arr[0],以后的res是上一次的返回值
     5     // var sum = arr.reduce(function (res, curr, index) {
     6     //   // index是curr的索引,默认从1开始,但是一般用的不多
     7     //   console.log(res, curr, index)
     8     //   return res + curr
     9     // })
    10     // console.log(sum)
    11 
    12     
    13     // reduce有两个参数,第一个参数是函数,第二个参数可选的默认值
    14     // 在后面写上一个默认值,循环次数就跟数组长度相等,res默认值就是1,curr从arr[0]开始
    15     var sum = arr.reduce(function (res, curr, index) {
    16       console.log(res, curr, index)
    17       // res *= curr
    18       // return res
    19       return res *curr
    20     }, 1)
    21     console.log(sum)
    22 
    23    //二维数组归并为一维数组 
    24    var arr = [
    25       [1,2,3],
    26       [4,5,6],
    27       [7,8,9]
    28     ]
    29 
    30     var arr1 = arr.reduce(function (res, curr) {
    31       return res.concat(curr)
    32     }, [])
    33 
    34     console.log(arr1)
    35 
    36 
    37     var arr = [
    38       [1,2,3],
    39       [4,5,6],
    40       [7,8,9]
    41     ]
    42 
    43     // reduce是从左往右归并,reduceRight从右往左
    44     // reduceRight的语法和reduce是完全一样的
    45     var arr1 = arr.reduceRight(function (res, curr) {
    46       return res.concat(curr)
    47     }, [])
    48 
    49     console.log(arr1) // [7,8,9,4,5,6,1,2,3]
  • 相关阅读:
    TLPI读书笔记第15章-文件属性2
    TLPI读书笔记第15章-文件属性1
    Java异常及错误
    10055
    4月。
    JavaScript三种方法获取地址栏参数的方法
    页面预加载loading动画,再载入内容
    什么是可串行化MVCC
    简化版扫雷详细解
    论unity中UI工具与GUI函数
  • 原文地址:https://www.cnblogs.com/strongerPian/p/12686337.html
Copyright © 2020-2023  润新知