JavaScript复习——操作数组的api(一)

数组的增删改查

push()

push方法主要是向数组的尾部添加一个或者多个元素,然后返回新数组的长度。

let arr = []
let arrLen = arr.push(1,2,3,4)

console.log("返回数组的长度:", arrLen, ",新数组: ", arr)
// 返回数组的长度: 4 ,新数组:  [ 1, 2, 3, 4 ]

pop()

pop方法主要是删除数组的最后一个元素,并返回删除的元素。

let arr = [1,2,3,5]
let deleteItem = arr.pop()

console.log("返回删除的元素: ", deleteItem, ",新数组:", arr) 
// 返回删除的元素: 5 ,新数组: [ 1, 2, 3 ] 

unshift()

unshift方法可向数组的头部添加一个或多个元素,并返回新数组的长度。

let arr = []
let arrLen = arr.unshift(1,2,3,4)

console.log("返回数组的长度:", arrLen, ",新数组: ", arr)
// 返回数组的长度: 4 ,新数组:  [ 1, 2, 3, 4 ]

shift()

shift 方法主要是删除数组的第一个元素,并返回删除的元素。

let arr = [1,2,3,4]
let deleteItem = arr.shift()

console.log("返回删除的元素:", deleteItem, ",新数组:", arr)
// 返回删除的元素: 1 ,新数组: [ 2, 3, 4 ]

splice()

splice方法可以传入多个参数,第一个参数代表数组添加/删除项目的起始下标,第二个参数代表要删除的元素的数量,第 n+2 个参数代表即将向数组添加的元素。以下将使用splice方法对数组实现增删改。splice方法的返回值是一个数组,数组里存放的是删除的元素

  • 使用splice删除数组元素
let arr = [1,2,3,4]
let deleteArr = arr.splice(1, 2)

// 以下标为 1/n 的元素开始,删除两个元素console.log("删除元素后的数组:", arr,"删除的元素:", deleteArr) 
// 删除元素后的数组: [ 1, 4 ] 删除的元素: [ 2, 3 ]
  • 使用splice修改数组元素
let arr = ["张三", "李四", "王五", "赵六"]
let deleteArr = arr.splice(1, 1, "熊大")
//  以下标为 1/n 的元素开始,删除一个元素,添加另外一个元素
console.log("修改后的数组:", arr,"删除的元素:", deleteArr)
// 修改后的数组: [ '张三', '熊大', '王五', '赵六' ] 删除的元素: [ '李四' ]
  • 使用splice添加数组元素
let arr = ["张三", "李四", "王五", "赵六"]
let deleteArr = arr.splice(1, 0, "熊大") 
//  以下标为 1/n 的元素开始,删除 0/n 个元素,在下标为 1/n 的位置添加 1/n 个元素

console.log("修改后的数组:", arr,"删除的元素:", deleteArr)
// 修改后的数组: [ '张三', '熊大', '李四', '王五', '赵六' ] 删除的元素: []

indexOf()

indexOf 方法用于查找数组元素,可以返回某个指定的字符串值在字符串中首次出现的位置。如果数组中有指定的元素值,那么返回元素的下标,如果没有则返回 -1 。该方法有两个参数,第一个参数是要查找的元素,第二个参数是是要查找的起始下标。

let arr = ["张三", "李四", "王五", "赵六", "张三"]

let index1 = arr.indexOf("张三") 
let index2 = arr.indexOf('张三', 1) // 以下标为1开始查找元素
let notFind = arr.indexOf('熊二')

console.log("查找的数组:", arr)
console.log("有范围地查找元素:", index1, "无范围地查找元素的:", index2, "未查找到的返回值:", notFind)
// 查找的数组: [ '张三', '李四', '王五', '赵六', '张三' ]
// 有范围地查找元素: 0 无范围地查找元素的: 4 未查找到的返回值: -1

lastIndexOf()

lastIndexOf也是用于查找数组元素,但是,它是从后面往前找,如果数组中有指定的元素值,那么返回元素的下标,如果没有则返回 -1 。该方法有两个参数,第一个参数是要查找的元素,第二个参数是是要查找的起始下标。

let arr = ["张三", "李四", "王五", "赵六", "张三"]

let index1 = arr.lastIndexOf("张三") 
let index2 = arr.lastIndexOf('张三', 1) // 以下标为1开始查找元素
let notFind = arr.lastIndexOf('熊二') 

console.log("查找的数组:", arr)
console.log("有范围地查找元素:", index1, "无范围地查找元素的:", index2, "未查找到的返回值:", notFind)

// 查找的数组: [ '张三', '李四', '王五', '赵六', '张三' ]
// 有范围地查找元素: 4 无范围地查找元素的: 0 未查找到的返回值: -1

findIndex()

findIndex是用于查找元素的,它的返回值是返回第一个符合条件的元素的下标,如果没有查找到符合的元素,那么返回 -1。它可以传入两个参数,第一个参数是一个回调函数,数组中的每个元素都调用一次回调函数。在回调函数中可以写你要查找元素的条件,当条件成立为true时,返回该元素的下标,没有则返回 -1。第二个参数我们通常不会用到,但是也说一下,它可以传入一个任意类型的值,这个值可以改变第一个参数内部的this指向。

let arr = [1,2,3,4]
let obj = {  name: '张三'}

// 第一个参数是一个回调函数,函数的形参有三个  数组元素:val,数组下标:index,原数组:array
let index = arr.findIndex(function(val, index, array) {
  console.log('数组元素:', val, ",元素下标:", index, ', 原数组:', array, ",传入的对象:", this)
  return val <= 2
}, obj) 
// 传入一个对象,那函数内部的this 指向就改变了,即函数内部的环境上下文就改变了console.log('查找到符合条件的元素的下标:', index)

// 数组元素: 1 ,元素下标: 0 , 原数组: [ 1, 2, 3, 4 ] ,传入的对象: { name: '张三' }
// 查找到符合条件的元素的下标: 0

find()

find可以用于查找元素,它的返回值是返回第一个符合条件的元素,如果没有,则返回undefined。它可以传入两个参数,这两个参数的跟findIndex是一样的,这里就不累述了。

let arr = [1,2,3,4]
let obj = {name:'张三'}

// 第一个参数是一个回调函数,函数的形参有三个  数组元素:val,数组下标:index,原数组:array
let index = arr.find(function(val, index, array) {   
    console.log('数组元素:', val, ",元素下标:", index, ', 原数组:', array, ",传入的对象:", this)  
    return val <= 2
}, obj) 
// 传入一个对象,那函数内部的this 指向就改变了,即函数内部的环境上下文就改变了

console.log('查找到符合条件的元素:', index)

// 数组元素: 1 ,元素下标: 0 , 原数组: [ 1, 2, 3, 4 ] ,传入的对象: { name: '张三' }
// 查找到符合条件的元素的下标: 0

includes()

includes用于判断数组是否存在指定的值,它的返回值是一个布尔值,存在就返回true,不存在就返回false。它可以传入两个参数,第一个参数是要查找的元素,第二个参数是要查找的起始位置。

let arr = [1,2,3,4]let isExit = arr.includes(1, 0)

console.log("是否存在指定的元素:", isExit)
// 是否存在指定的元素: true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值