美文网首页
JS学习笔记_数组篇

JS学习笔记_数组篇

作者: hkingby | 来源:发表于2017-12-01 14:28 被阅读4次

    (一)操作方法

    push: 从数组末尾添加项,返回数组长度
    unshift : 从数组头添加项,返回数组长度
    pop : 从数组末尾删除项,返回被移除的项
    shift : 从数组头删除项,返回被移除的项
    concat : 组合两个数组,原来的数组不会被改变
    slice : 接受一个或两个参数,从数组中截取部分项,返回新的数组,原来的数组不会被改变

    注意: 如果结束位置小于初始位置则返回空的数组;如果参数为负值,则位置是 参数+数组长度

    splice => 有三种基本用法:

    • 删除项: 第一个参数表示开始删除项的位置,第二个参数表示要删除多少项
    • 插入项: 第一个参数表示开始删除项的位置,第二个参数表示要是出多少项(这里是0,表示不删除),第三个参数表示要插入的项,如果要插入多个项,可以添加第四个,第五个参数
    • 替换项: 第一个参数表示开始删除项的位置,第二个参数表示要删除多少项,第三个参数表示要替换的项,如果替换的项有多个,同上。

    (二)排序

    sort => 先把数组的每个值用 toString()方法转成字符串,然后再比较
    所以要想得到正确的顺序,需要给sort传递一个比较函数,推荐一个比较常用的比较函数:

    function compare(v1,v2){
    return v2 - v1
    }
    用法:sort(compare)
    

    (三)位置

    indexOf => 查找某个项在数组中的位置,从头查询。
    lastIndexOf => 查找某个项在数组中的位置,从末尾查询。

    以上两个方法都接受两个参数,第一个参数表示要查询的项,第二个参数表示开始查询位置(可选)

    (四)迭代方法

    五个迭代方法接受两个参数,一个是要数组对象,一个是运行在数组每一项上的函数

    1. every() => 如果函数每一项都返回true,则返回值为true
    var numbers = [1,2,3,4]
    var result = numbers.every(function(item, index, array){
      return (item > 2)
    })
    console.log(result) // false
    

    2.some() => 如果函数中任一项返回true,则返回值为true

    var numbers = [1,2,3,4]
    var result = numbers.some(function(item, index, array){
      return (item > 2)
    })
    console.log(result) // true
    

    3.filter() => 函数中返回值为true的项组成新数组

    var numbers = [1,2,3,4]
    var result = numbers.filter(function(item, index, array){
      return (item > 2)
    })
    console.log(result) // [3,4]
    

    4.map() => 每次调用函数的结果组成新的数组

    var numbers = [1,2,3,4]
    var result = numbers.map(function(item, index, array){
      return item * 2
    })
    console.log(result) // [2,4,6,8]
    

    5.forEach() => 这个方法没有返回值

    var numbers = [1,2,3,4]
     numbers.map(function(item, index, array){
      // 执行某些操作
    })
    

    6.reduce()reduceRight() ,其实这两个方法不是迭代方法,为了方便我整理到了一起,解释起来比较麻烦,看列子会明白:

    // 计算一个数组的求和
    var arr = [1,2,3,4]
    var sum = arr.reduce(function(prev,cur,index,array){
      return prev + cur
    })
    console.log(sum)  // 10
    

    相关文章

      网友评论

          本文标题:JS学习笔记_数组篇

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