JavaScript基础教程--数组操作

Array 对象用于在单个的变量中存储多个值。
创建数组的方式:

  1. var arr = new Array() // 返回空数组
  2. var arr =new Array(size) // 参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。
  3. var arr =new Array(elm0, elm1, elm2,…elmn) // 参数 element …, elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的length 字段也会被设置为参数的个数。
  4. var arr = [] // 返回空数组
  5. var arr = [elm0. elm1, elm2,…elmn] // 返回一个数组,数组中元素就是elm0, elm1, elm2,…elmn

返回值:

  • 返回新创建并被初始化了的数组
  • 如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。
  • 当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为 undefined 的数组。
  • 当其他参数调用 Array() 时,该构造函数将用参数指定的值初始化数组。
  • 当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。

Array对象属性:

  • constructor // 返回对创建次对象的数组函数的引用
  • length // 设置或返回数组中元素的数目
  • prototype // 原型对象,可以向对象中添加属性和方法(用法跟prototype 一样)

Array对象方法:

  1. concat() // 连接两个或更多的数组,并返回结果。
    在这里插入图片描述
    2. copyWithin(target, start, end) // 从数组的指定位置拷贝元素到数组的另一个指定位置中。
    target 必需,复制到指定目标索引位置
    start 可选,元素复制的起始位置;
    end 可选,停止复制的索引位置(默认为array.length),如果是负值,表示倒数。
    在这里插入图片描述
    3. entries() // 返回一个数组的迭代对象,该对象中包含数组的键值对(key/value)。
    迭代对象中数组的索引值作为 key, 数组元素作为 value。
    在这里插入图片描述
    4. every() // 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
    every() 方法使用指定函数检测数组中的所有元素:如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测;如果所有元素都满足条件,则返回 true。
    注意: 1、every() 不会对空数组进行检测;2、 every() 不会改变原始数组。
    array.every(function(currentValue,index,arr), thisValue)
    function(currentValue, index,arr) 必须。函数,数组中的每个元素都会执行这个函数
    函数参数:
    currentValue 必须。当前元素的值
    index 可选。当前元素的索引值
    arr 可选。当前元素属于的数组对象
    thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue ,“this” 的值为 “undefined"
    在这里插入图片描述
    5. fill() 方法用于将一个固定值替换数组的元素。
    array.fill(value, start, end)
    value 必需。填充的值。
    start 可选。开始填充位置,包含开始位置。
    end 可选。停止填充位置 (默认为 array.length),不包含开结束位置。
    在这里插入图片描述
    6. filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
    注意: 1、filter() 不会对空数组进行检测; 2、filter() 不会改变原始数组。
    array.filter(function(currentValue,index,arr), thisValue)
    function(currentValue, index,arr) 必须。函数,数组中的每个元素都会执行这个函数
    currentValue 必须。当前元素的值
    index 可选。当前元素的索引值
    arr 可选。当前元素属于的数组对象
    thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue ,“this” 的值为 “undefined"
    在这里插入图片描述
    7. find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
    find() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined。
    注意: 1、find() 对于空数组,函数是不会执行的;2、find() 并没有改变数组的原始值。
    array.find(function(currentValue, index, arr),thisValue)
    function(currentValue, index,arr) 必需。数组每个元素需要执行的函数。
    currentValue 必需。当前元素
    index 可选。当前元素的索引值
    arr 可选。当前元素所属的数组对象
    thisValue 可选。 传递给函数的值一般用 “this” 值。如果这个参数为空, “undefined” 会传递给 "this” 值
    在这里插入图片描述
    8. findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
    findIndex() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数;如果没有符合条件的元素返回 -1。
    注意: 1、findIndex() 对于空数组,函数是不会执行的;2、findIndex() 并没有改变数组的原始值。
    array.findIndex(function(currentValue, index, arr), thisValue)
    function(currentValue, index,arr) 必须。数组每个元素需要执行的函数。
    currentValue 必需。当前元素
    index 可选。当前元素的索引
    arr 可选。当前元素所属的数组对象
    thisValue 可选。 传递给函数的值一般用 “this” 值。如果这个参数为空, “undefined” 会传递给 "this” 值。在这里插入图片描述
    9. forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
    注意: forEach() 对于空数组是不会执行回调函数的。
    array.forEach(function(currentValue, index, arr), thisValue)
    function(currentValue, index, arr) 必需。 数组中每个元素需要调用的函数。
    currentValue 必需。当前元素
    index 可选。当前元素的索引值。
    arr 可选。当前元素所属的数组对象。
    thisValue 可选。传递给函数的值一般用 “this” 值。如果这个参数为空, “undefined” 会传递给 "this” 值
    在这里插入图片描述
    10. from() 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。
    如果对象是数组返回 true,否则返回 false。
    Array.from(object, mapFunction, thisValue)
    object 必需,要转换为数组的对象。
    mapFunction 可选,数组中每个元素要调用的函数。
    thisValue 可选,映射函数(mapFunction)中的 this 对象。
    在这里插入图片描述
    11. includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
    arr.includes(searchElement)
    arr.includes(searchElement, fromIndex)

    searchElement 必须。需要查找的元素值。
    fromIndex 可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。
    在这里插入图片描述
    12. indexOf() 方法可返回数组中某个指定的元素位置。
    该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
    如果在数组中没找到指定元素则返回 -1。
    array.indexOf(item,start)
    item 必须。查找的元素。
    start 可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
    在这里插入图片描述
    13. isArray() 方法用于判断一个对象是否为数组。
    如果对象是数组返回 true,否则返回 false。
    Array.isArray(obj)
    obj 必需,要判断的对象。在这里插入图片描述
    14. join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分割,默认使用逗号。
    在这里插入图片描述
    15. keys() 方法用于从数组创建一个包含数组键的可迭代对象。
    如果对象是数组返回 true,否则返回 false。
    array.keys()
    在这里插入图片描述
    16. lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找。
    如果要检索的元素没有出现,则该方法返回 -1。
    该方法将从尾到头地检索数组中指定元素 item。开始检索的位置在数组的 start 处或数组的结尾(没有指定 start 参数时)。如果找到一个 item,则返回 item 从尾向前检索第一个次出现在数组的位置。数组的索引开始位置是从 0 开始的。
    如果在数组中没找到指定元素则返回 -1。
    array.lastIndexOf(item,start)
    item 必需。规定需检索的字符串值。
    start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。在这里插入图片描述
    17. map() // 调用的数组的每一个元素传递给指定的函数,并返回一个新数组
    array.map(function(value,index,arr), thisValue) 必须。函数,数组中的每个元素都会执行这个函数
    currentValue 必须。当前元素的值
    index 可选。当前元素的索引值
    arr 可选。当前元素属于的数组对象
    thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为undefined。
    在这里插入图片描述
    在这里插入图片描述
    18. pop() // 删除并返回数组的最后一个元素
    在这里插入图片描述
    19. push() // 向数组的末尾添加一个或多个元素,并返回新的数组
    在这里插入图片描述
    在这里插入图片描述
    20. reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
    reduce() 可以作为一个高阶函数,用于函数的 compose。
    注意: reduce() 对于空数组是不会执行回调函数的。
    array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
    function(total,currentValue, index,arr) 必需。用于执行每个数组元素的函数。
    total 必需。初始值, 或者计算结束后的返回值。
    currentValue 必需。当前元素
    currentIndex 可选。当前元素的索引
    arr 可选。当前元素所属的数组对象。
    initialValue 可选。传递给函数的初始值。
    在这里插入图片描述
    21. reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。
    array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue)
    function(total,currentValue, index,arr) 必需。用于执行每个数组元素的函数。
    total 必需。初始值, 或者计算结束后的返回值。
    currentValue 必需。当前元素
    currentIndex 可选。当前元素的索引
    arr 可选。当前元素所属的数组对象。
    initialValue 可选。传递给函数的初始值
    在这里插入图片描述
    22. reverse() // 颠倒数组中元素的顺序
    在这里插入图片描述
    23. shift() // 删除并返回数组的第一个元素
    在这里插入图片描述
    24. unshift() // 向数组的开头添加一个或多个元素,并返回新的长度
    在这里插入图片描述
    在这里插入图片描述
    25. slice() // 从某个已有的数组返回选定的元素
    参数:
    start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
    end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
    结果: 返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。 请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
    在这里插入图片描述
    26. sort() // 对数组元素进行排序
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    27. splice(index,howmany,item1,item2…) // 删除元素,并向数组添加新元素
    参数:
    index 必需,整数,规定添加、删除项目的位置,使用负数从数组结尾处规定位置
    howmany 可选,规定应该删除多少元素。必须是数字,但可以是 “0”。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
    item1,…itemn 可选,向数组添加新项目
    结果: 返回一个由删除元素组成的数组,新建了一个数组,并修改了原数组
    在这里插入图片描述
    在这里插入图片描述
    28. some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
    some() 方法会依次执行数组的每个元素:
    如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
    如果没有满足条件的元素,则返回false。
    注意: 1、some() 不会对空数组进行检测;2、some() 不会改变原始数组。
    array.some(function(currentValue,index,arr),thisValue)
    function(currentValue, index,arr) 必须。函数,数组中的每个元素都会执行这个函数
    currentValue 必须。当前元素的值
    index 可选。当前元素的索引值
    arr 可选。当前元素属于的数组对象
    thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue ,“this” 的值为 “undefined”。
    在这里插入图片描述
    29. toString() // 将数组转换成字符串,并返回结果, 返回值与没有参数的 join() 方法返回的字符串相同。
    在这里插入图片描述
    30. toLocaleString() // 把数组转换成本地字符串,并返回结果, 首先调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。
    在这里插入图片描述
    31. valueOf() // 返回数组对象的原始值
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值