为什么最后三行输出的结果是不一样的?

来源:7-3 编程练习

不会飞的萌物

2019-03-05 15:07:49

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
       var arr1 = [1,235,1545,15,5];
       var arr2 = ["hello","world"];
       
       var arr3 = arr1.concat.apply(arr1,arr2)
       console.log(arr3);

       //arr1.push(arr2);             //(6) [1, 235, 1545, 15, 5, Array(2)] 
       arr1.push.apply(arr1,arr2);   //(7) [1, 235, 1545, 15, 5, "hello", "world"]
       console.log(arr1);
       
    </script>
</body>
</html>

arr1.push(arr2);   和  arr1.push.apply(arr1,arr2);  这两句为什么控制台输出的数组长度不一样?

写回答

1回答

好帮手慕星星

2019-03-05

你好,

1、arr1.push(arr2);这句话的意思是将arr2整个数组放入arr1数组中所以出来的结果是:

http://img.mukewang.com/climg/5c7e2e3b0001f98b04810233.jpg

arr2数组整个放进arr1数组中,作为一个内容。

2、 arr1.push.apply(arr1,arr2); 这句话的意思是将arr2数组中每一项存放在arr1数组中,结果:

http://img.mukewang.com/climg/5c7e2f760001c48404680032.jpg

这是使用了apply方法的原因,每一项分别放进arr1数组中。

所以输出的数组长度会不一样。

自己可以再测试下,祝学习愉快!

2

0 学习 · 4826 问题

查看课程