JavaScript数组数据的基本方法

记录–数组的基本属性和方法,输出包含原数组的表明方法会改变原数组内容

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>数组方法</title>
  </head>
  <body>
    <script>
      let arr1 = ["red", "yellow", "pink", "black"];
      console.log(arr1.length); // 4
      console.log(arr1[3]); // black
      let arr2 = new Array("1", "2", "3", "4");
      console.log(Array.from("hello")); // ["h", "e", "l", "l", "o"]
      function arrFrom() {
        return Array.from(arguments, (e) => {
          return e * e;
        });
      }
      console.log(arrFrom(1, 2, 3, 4, 5)); // [1, 4, 9, 16, 25]
      function arrSlice() {
        return Array.prototype.slice.call(arguments);
        // return Array.of();
      }
      console.log(arrSlice(1, 2, 3, 4, 5)); // [1, 2, 3, 4, 5]
      function reset(...arg) {
        return arg;
      }
      console.log(reset(1, 2, 3, 4, 5)); // [1, 2, 3, 4, 5]
      console.log(new Array(6)); //[empty × 6]
      // 判断是否为数组
      console.log(arr1 instanceof Array); // true
      console.log(arr2 instanceof Array); // true
      console.log(Array.isArray(arr1), Array.isArray(arr2)); // true true
      //   迭代器方法
      let arr3 = ["foo", "bar", "baz", "qux", "vue"];
      console.log(...arr3.keys()); // 0 1 2 3 4    keys() 返回数组索引的迭代器
      console.log(...arr3.values()); // foo bar baz qux vue 返回数组元素迭代器
      console.log(...arr3.entries()); // [0, "foo"] [1, "bar"]  [2, "baz"]  [3, "qux"]  [4, "vue"]
      // 数组复制
      let arr4 = [0, 0, 0, 0, 0];
      console.log(arr4.fill(5)); // [5, 5, 5, 5, 5]
      console.log(arr4.fill(6, 3)); // [5, 5, 5, 6, 6]
      console.log(arr4.fill(7, 1, 3)); //[5, 7, 7, 6, 6]
      let arr5 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
      console.log(arr5.copyWithin(5)); // [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
      console.log(arr5.copyWithin(0, 5)); // [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] 复制索引5开始的内容,插入到索引0开始的位置
      console.log(arr5.copyWithin(4, 0, 3)); // [1, 2, 3, 4, 1, 2, 3, 3, 4, 5] 复制索引0开始到索引3结束的内容,插入到索引4开始的位置
      //转换方法
      let arr6 = ["red", "blue", "green"];
      console.log(arr6.toString()); // red,blue,green
      console.log(arr6.valueOf()); // ["red", "blue", "green"]
      //   栈方法
      console.log(arr6.push("pink"), arr6); // 4 ["red", "blue", "green", "pink"]
      console.log(arr6.pop(), arr6); // pink ["red", "blue", "green"]
      // 队列方法
      console.log(arr6.shift(), arr6); // red  ["blue", "green"]
      console.log(arr6.unshift("green"), arr6); // 3  ["green", "blue", "green"]
      let arr7 = [4, 3, 2, 6, 9, 4];
      console.log(arr7.reverse()); //  [4, 9, 6, 2, 3, 4]
      console.log(
        arr7.sort((a, b) => {
          return a - b;
        })
      ); //[2, 3, 4, 4, 6, 9]
      console.log(arr7.sort((a, b) => b - a)); //[9, 6, 4, 4, 3, 2]
      let arr8 = ["hello", "i", "am"];
      console.log(arr8.concat("blank", ["cheng"])); //["hello", "i", "am", "blank", "cheng"]
      console.log(arr8.slice(1, 3), arr8.slice(1, 2)); //["i", "am"] ["i"]
      console.log(arr7.splice(1, 2), arr7); //[6, 4] [9, 4, 3, 2]
      console.log(arr8.splice(1, 2, "my", "name", "is"), arr8); // ["i", "am"]  ["hello", "my", "name", "is"]
      // 严格相等
      let arr9 = [1, 2, 32, 34, 12, 9, 4, 14];
      console.log(arr9.indexOf(2)); // 1
      console.log(arr9.lastIndexOf(12)); // 4
      console.log(arr9.includes(34)); // true
      // 断言函数
      console.log(arr9.find((e, i, arr) => e > 10)); //32
      console.log(arr9.findIndex((e, i, arr) => e > 10)); // 2
      console.log(arr9.every((e, i, arr) => e > 10)); // false
      console.log(arr9.every((e, i, arr) => e < 50)); // true
      let arr0 = [1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9];
      console.log(arr0.filter((e, i, arr) => e > 5)); // [6, 7, 8, 8, 9]
      arr0.forEach((e, i, arr) => {
        //console.log(arr); //[1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9]
        console.log(e > 5); // 7false 5true
      });
      console.log(arr0.map((e, i) => e * 2)); //[2, 4, 4, 6, 8, 10, 10, 12, 14, 16, 16, 18]
      console.log(arr0.some((e, i) => e === 6)); //true 有一项符合函数就输出true
      console.log(arr0.reduce((pre, cur, curIndex, arr) => pre + cur)); // 60
      console.log(arr0.reduce((pre, cur, curIndex, arr) => pre + cur, "")); // 122345567889
    </script>
  </body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值