push.apply,caoncat返回

32 阅读1分钟

image.png

这串代码,报错

Cannot read properties of undefined (reading 'apply')
无法读取未定义的属性(读取'apply')

apply是Arr上面的方法,为啥会读不到

同样是数组合并,Arr.concat(data)不会出现这种情况

一时没反应过来

    var arr1=[1,2];
    var arr2=[3,4,5];
    var arr3=arr1.concat(arr2);//[1,2,3,4,5]
    console.log('arr3 :>> ', arr3);
    
    var arr4 =  arr1.push.apply(arr1,arr2);//[1,2,3,4,5]
    console.log('arr1 :>> ', arr1);
    console.log('arr4 :>> ', arr4);
    
    arr3 :>>  (5) [1, 2, 3, 4, 5]
    arr1 :>>  (5) [1, 2, 3, 4, 5]
    arr4 :>>  5

有朋友应该看懂了,arr4返回的是,index,数组长度,自然没有apply方法

改正:

image.png