数组的新增方法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
      <li>7</li>
      <li>8</li>
      <li>9</li>
      <li>10</li>
    </ul>
  </div>
  <script>
    //Array的静态方法
    //将伪数组转为数组 Array.from(伪数组)
    // let lis = document.getElementsByTagName('li') //伪数组
    // console.log(lis)
    // lis.forEach(function(item,index){
    //   console.log(item,index)
    // });//不是数组没有这个方法

    // let arr = Array.from(lis)
    // console.log(arr)
    // arr.forEach(function(item,index){
    //   console.log(item,index)
    // });

    //Array.of(数字,数字) 将一组数字转化为数组
    // let arr1 = Array.of(1,2,3,4)
    // console.log(arr1)
    // let arr2 = Array.of(1)
    // console.log(arr2)

    // 静态方法实例是不能调用的
    // let lis = document.getElementsByTagName('li') //伪数组
    // let arr1 = [1,2,3,4]
    // arr1.from(lis) //arr1.from is not a function

    // 原型上的方法即实例方法需要使用数组实例去调用
    // {
    //   let arr = [1,2,3,4,5,6,7,8]
    //   //0 表示从arr数组小标为0的位置上开始被替换
    //   //至于有几个值被替换,取决于后面的的两个参数
    //   //4 表示找到arr中下标为4的值,作为要替换的内容的开头
    //   //6 表示找到arr中下标为6的值,最终替换的时候,就是拿下标为4~下标为6的内容(包含头不包含尾),替换下标从0开始的值
    //   arr.copyWithin(0,4,6)
    //   console.log(arr) //[5,6,3,4,5,6,7,8]
    // }

    // {
    //   let arr = [1,2,3,4,5,6,7,8]
    //如果不传第三个参数:那么要替换的内容就是从下标3开始一直到结尾(包含尾)
    //   arr.copyWithin(0,3)
    //   console.log(arr) //[4, 5, 6, 7, 8, 6, 7, 8]
    // }

    // {
    //   let arr = [1,2,3,4,5,6,7,8]
    //   //如果不传第二、三参数:那么要替换的内容就是从下标0开始一直到结尾(包含尾),也就是和用来内容一样,但是替换了一遍
    //   arr.copyWithin(0)
    //   console.log(arr) [1,2,3,4,5,6,7,8]
    // }

    //fill填充数组
    // let arr = []
    // //如果使用一个空数组,这个数组中无法直接填充内容,需要定义长度
    // arr.length = 8
    // arr.fill('a')
    // console.log(arr)


    //keys(),values(),entries()
    // let arr = ['a','b','c']
    // console.log(arr.keys())//返回一个数组迭代器对象    Array Iterator {}
    // console.log(arr.values())//返回一个数组迭代器对象  Array Iterator {}
    // console.log(arr.entries())//返回一个数组迭代器对象 Array Iterator {}

    // let arr = ['a','b','c']
    // let keyIterator = arr.keys()
    // let valuesIterator = arr.values()
    // let entriesIterator = arr.entries()

    // //如果要遍历迭代器对象要使用for of
    // for (let key of keyIterator) {
    //   console.log(key) //遍历的是arr中的下标(键)
    // }

    // for (let value of valuesIterator) {
    //   console.log(value) //遍历的是arr中的值
    // }

    // for (let entries of entriesIterator) {
    //   console.log(entries) //遍历的是arr中的下标(键)和值
    // }


    // //find和findIndex
    // let arr = ['a','b','c','d','e']
    // //返回指定元素
    // let res = arr.find(function(item, index){
    //   console.log(item,index) //a,b,c
    //   //当返回的结果是true时,后面就不会再遍历了,就将当前的item返回
    //   return item === 'c'
    // })
    // console.log(res) //c

    // let arr = [{name:'zs'},{name:'ls'},{name:'ww'}]
    // let res = arr.find(function(item, index){
    //   console.log(item,index) //{name: 'zs'} {name: 'ls'} {name: 'ww'}
    //   // 这里是不能这么判断的,因为对象比较时,两个对象的地址并不是同一个,所以是不相等的
    //   return item === {name:'ls'}
    //   // 应该这样写
    //   return item.name === 'ls'
    // })
    // console.log(res) //undefined

    // findIndex()返回的是下标
    // let arr = [{name:'zs'},{name:'ls'},{name:'ww'}]
    // let res = arr.findIndex(function(item,index){
    //   return item.name === 'ls'
    // })
    // console.log(res)//1

    //includes
    // let arr1 = ['a']
    // let arr2 = [1,2,3,4,arr1]
    // console.log(arr2.includes(1)) //true
    // console.log(arr1.includes('a'))//true
    // console.log(arr1.includes(['a']))//false  因为是两个不同的数组,地址不一样
    // console.log(arr2.includes(arr1))//true  这样就是true了

    //flat()将多维数组转为一维数组
//     {
//       //二维数组
//       let arr = [1,2,[3,4]]
//       console.log(arr.flat())
//     }

//     {
//       //多维数组,想拉平,可以传入参数,例如3维想变1维就需要把参数写成2
//       let arr = [1,2,[3,4,[5,6,7]]]
//       console.log(arr.flat(2))
//     }
//     {
//       //如果不知道自己的数组有多少层,那么可以传入Infinity代表无穷大,直接变为1维
//       let arr = [1,2,3[4,5[6,7[8,9[10,11]]]]]
//       console.log(arr.flat(Infinity))
//     }

      //总结数组的常用方法:
      // Array.prototype.forEach
      // Array.prototype.map
      // Array.prototype.reduce
      // Array.prototype.every
      // Array.prototype.some
      // Array.prototype.filter
      // Array.prototype.find
      // Array.prototype.findIndex

      // //静态方法
      // Array.from() //把伪数组转为数组

      // //合并数组
      // [...arr1,...arr2]
      // //复制数组
      // let arr1 = [...arr2]

  </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FGGIT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值