为什么最后三行输出的结果是不一样的?
来源: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回答
你好,
1、arr1.push(arr2);这句话的意思是将arr2整个数组放入arr1数组中所以出来的结果是:

arr2数组整个放进arr1数组中,作为一个内容。
2、 arr1.push.apply(arr1,arr2); 这句话的意思是将arr2数组中每一项存放在arr1数组中,结果:

这是使用了apply方法的原因,每一项分别放进arr1数组中。
所以输出的数组长度会不一样。
自己可以再测试下,祝学习愉快!
相似问题