javascript 数组的增删改查、遍历与常用方法

本文探讨了JavaScript中数组的增删改查操作,强调了取元素的高效性,介绍了遍历技巧及常用方法,包括类对象上的静态方法,如Array.isArray()与instanceof用于判断数组类型的比较。
摘要由CSDN通过智能技术生成

[] 取元素的时间复杂度为O(1)

  1. 增:

    方法返回值说明
    push(item1, item2...)新数组长度末尾插入 […, item1, item2… ]
    unshift(item1, item2, ...)新数组长度开头插入 [ item1, item2… , …]
    splice(startIndex, ?deleteCount, item1, item2...)删除的元素组成的数组任意位置
    concat(?item, ...)拼接后的新数组末尾插入, 返回数组副本 。若传入数组,会自动进行解构
  2. 删:

    方法返回值说明
    pop()删除的元素删除数组末尾元素,并返回
    shift()删除的元素删除数组首部元素,并返回
    slice(startIndex, ?endIndex)删除的元素组成的数组删除指定区域元素
    splice(startIndex, ?deleteCount)删除的元素组成的数组删除指定区域开始的指定个数个元素,并以列表形式返回被删除的元素。deleteCount大于剩余元素时,保留startIndex前的元素。
  3. 方法返回值说明
    splice(startIndex, ?deleteCount, item1, item2...)同上同上
  4. 方法返回值说明
    [index]查找值越界返回 undefine
    indexOf(item, ?startIndex)查找值从头开始找,未找到返回-1
    lastIndexOf(item, ?startIndex)查找值从末尾开始找, 未找到返回-1
    find((value, index, array)=>{ return 布尔值 })数组值数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
    findIndex((value, index, array)=>{ return 布尔值 })数组索引数组中满足提供的测试函数的第一个元素的索引。否则返回 -1
  5. 遍历

    方法返回值说明
    for循环--
    for(let item of array) { }-可以正常响应 continue, break, returnitem无法修改原数组
    forEach( (item, index) => { } )undefined无法响应 continue, break, return,item无法修改原数组
  6. 一些常用方法

    方法返回值说明
    map((value, index, array)=>{})与原数组等长的新数组对数组的每一项进行操作并返回一个新数组,每一项的值由回调函数的返回值决定
    filter((value, index, array)=>{})新数组(与原数组不一定等长)过滤掉回调函数返回值为 false 时对应的数组项
    reduce((pre, curr, index, array)=>{}, initValue)一个值数组累加、累乘等操作,从数组首部开始遍历
    reduceRight((pre, curr, index, array)=>{}, initValue)一个值reduce() ,从数组尾部开始遍历
    keys(), values(), entries()迭代器对象-
    includes(valueToFind, ?fromIndex)boolean判断列表中是否有valueToFind
    join(sep)string以sep分割列表项,组成一个字符串(sep可为空串)。若数组只有一项,则只返回这一项的字符串,无分隔符
  7. Array 类对象上的静态方法
    (1)Array.from(arrayLike[, mapFn[, thisArg]])

// 从类数组对象上返回一个新数组
Array.from('foo');	// ['f', 'o', 'o']
Array.from([1,2,3], v => v*2);	// [2,4,6]
// 通过设置from的length属性,以及添加索引的对于值,返回一个定制长度和内容的数组
Array.from({length: 3, 0: 15, 1: 'hello'});	// [15, hello, undefined]
Array.from({length: 5}, (v, k) => k);	// [0, 1, 2, 3, 4]

(2)Array.isArray(obj) :判断obj是不是数组

Array.isArray([1,2,3]);	// true

Array.isArray vs. instanceof

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值