logo头像

求知若渴,虚心若愚

JavaScript - 数组( Array ) - 数组方法(三)

indexOf()

  • 返回数组中某个指定的元素位置
  • 该方法将从头到尾地检索数组,看它是否含有对应的元素。
  • 开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。
    • 如果找到一个 item,则返回 item 的第一次出现的位置。
    • 开始位置的索引为 0。
  • 如果在数组中没找到指定元素则返回 -1。
1
2
3
4
5
6
7
8
var arr = [11, 22, 33, 33];
console.log(arr.indexOf(33)); // 2 第一次出现的位置
console.log(arr.indexOf(44)); // -1 不存在,-1

if (arr.indexOf(44) === -1) {
// 元素不存在数组中
console.log('44不在数组arr中')
}

lastIndexOf()

  • 返回一个指定的元素在数组中最后出现的位置,在一个数组中的指定位置从后向前搜索。
  • 如果要检索的元素没有出现,则该方法返回 -1。
  • 该方法将从尾到头地检索数组中指定元素 item。
    • 开始检索的位置在数组的 start 处或数组的结尾(没有指定 start 参数时)。
    • 如果找到一个 item,则返回 item 从尾向前检索第一个次出现在数组的位置
    • 数组的索引开始位置是从 0 开始的。
  • 如果在数组中没找到指定元素则返回 -1。
1
2
3
4
5
6
7
var arr = [11, 22, 33, 22];
console.log(arr.lastIndexOf(22)); // 3
console.log(arr.lastIndexOf(7)); // -1 找不到返回-1
console.log(arr.lastIndexOf(22, 3)); // 3 索引3开始
console.log(arr.lastIndexOf(22, 2)); // 1 索引1开始
console.log(arr.lastIndexOf(22, -2)); // 1
console.log(arr.lastIndexOf(22, -1)); // 3

TIP
start可以是负数,索引0是数组第一个元素,那么-1是数组倒数第一个元素,以此类推

toString()

  • 把数组转换为字符串,并返回结果。
  • 返回值与没有参数的 join() 方法返回的字符串相同。
1
2
3
4
5
var arr = new Array(3)
arr[0] = "11"
arr[1] = "22"
arr[2] = "33"
console.log(arr.toString()) // 11,22,33

forEach()

  • 用于调用数组的每个元素,并将元素传递给回调函数。
    • 没有返回值
    • forEach() 对于空数组是不会执行回调函数的
    • callback的参数:
      • value –当前索引的值 必选
      • index –索引 可选
      • array –原数组 可选
1
2
3
4
5
6
var arr = [11223344]
arr.forEach((item, index) => {
// item 当前元素,必选
// index 当前元素的索引
// 匿名函数,是里面每一个item都会执行一次
})

map()

  • 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
  • 按照原始数组元素顺序依次处理元素
  • map() 不会对空数组进行检测
  • map() 不会改变原始数组
1
2
3
4
5
6
7
8
let arr = [11,22,33,44,55]
let ret = arr.map( (value,index,array)=>{
console.log('value',value)
console.log('index',index)
console.log('array',array)
})
console.log(arr)
console.log(ret)

TIP
arr.forEach()和arr.map()

  • arr.forEach()是和for循环一样,是for循环的替代品
  • arr.map()是修改数组其中的数据,并返回新的数据
    • arr.forEach() 没有return
    • arr.map() 有return
支付宝打赏 微信打赏

赞赏是对我们的肯定!