ES5-ES6-ES7_数组的扩展

时间:2023-03-09 16:28:49
ES5-ES6-ES7_数组的扩展

Array.prototype.indexOf(value) 

得到值在数组中的第一个下标,如果元素不存在返回-1,可以用来判断是否包含指定的元素

var arr = [6,5,4,3,1,7,6];
console.log(arr.indexOf(5)) 

Array.prototype.includes(value)
判断数组中是否包含指定value

var arr = [6,5,4,3,1,7,6];
console.log(arr.includes(5)) // true
console.log(arr.includes(8)) // false

Array.prototype.lastIndexOf(value) 

得到值在数组中的最后一个下标

var arr = [6,5,4,3,1,7,6];
console.log(arr.lastIndexOf(6)) 

Array.prototype.forEach(function(item, index){})

遍历数组

var arr = [6,5,4,3,1,7,6];
arr.forEach(function (item, index) {
    console.log(item + '-' + index) // index是角标,item是元素值
})

Array.prototype.map(function(item, index){})

遍历数组返回一个新的数组,返回加工之后的值

    var arr = [6,5,4,3,1,7,6];
    var newArr = arr.map(function (item, index) {
      return item + 10
    })

    console.log(newArr)

Array.prototype.filter(function(item, index){}) 

遍历过滤出一个新的子数组, 返回条件为true的值

    var arr = [6,5,4,3,1,7,6];
    var newArr = arr.filter(function (item, index) {
      return item > 5 //将arr数组中所有大于5的元素添加到一个新的数组中
    })

    console.log(newArr)

Array.from(v)

将伪数组对象或可遍历对象转换为真数组

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>03_数组扩展</title>
</head>
<body>
<button>测试1</button>
<br>
<button>测试2</button>
<br>
<button>测试3</button>
<br>
<script type="text/javascript">
  let btns = document.getElementsByTagName('button') //现在btns也是一个数组(伪数组,没有数组一般的方法)

  // 因为btns是个伪数组,没有数组的一般方法,所以会报错
  // btns.forEach(function (item, index) {
  //   console.log(item)
  // })

  // 将伪数组对象转换为真数组
  Array.from(btns).forEach(function (item, index) {
    console.log(item)
  })
</script>
</body>

</html>

Array.of(v1, v2, v3)

将一系列值转换成数组

console.log(Array.of('3', 3, '4')) //["3", 3, "4"]

find(function(value, index, arr){return true})和findIndex(function(value, index, arr){return true})

find:找出第一个满足条件返回true的元素

findIndex:找出第一个满足条件返回true的元素下标

let arr = [4,5,1,6,4,7,9,13]
  let result = arr.find(function (item, index) {
    return item > 3
  })
  let resultIndex = arr.findIndex(function (item, index) {
    return item > 3
  })
  console.log(result) //4,也就是数组中的第一个元素的值,满足了条件大于3
  console.log(resultIndex) //0,也就是数组中的第一个元素的下标,满足了条件大于3