Javascript 创建新数组和清除长度之间的差异

Javascript 创建新数组和清除长度之间的差异,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,如果我必须删除数组中的所有项,那么使用新数组和长度=0之间有什么区别?在本例中,结果显然是相同的 函数MyCtrl($scope){ $scope.arrayData=[“1”、“2”、“3”]; $scope.newArray1=函数(){ $scope.arrayData=新数组(); } $scope.newArray2=函数(){ $scope.arrayData=[]; } $scope.lengthZero=函数(){ $scope.arrayData.length=0;

如果我必须删除数组中的所有项,那么使用
新数组
长度=0
之间有什么区别?在本例中,结果显然是相同的

函数MyCtrl($scope){
$scope.arrayData=[“1”、“2”、“3”];
$scope.newArray1=函数(){
$scope.arrayData=新数组();
}    
$scope.newArray2=函数(){
$scope.arrayData=[];
}
$scope.lengthZero=函数(){
$scope.arrayData.length=0;
}    
$scope.populate=function(){
$scope.arrayData.push(“1”、“2”、“3”);
}    
}

数据:

  • {{data}
新数组-1方法 新数组-第二种方法 长度=0 居住于
仅使用
[]
.length=0
之间有很大区别


如果使用
=[]
将为变量指定一个新引用,从而丢失对原始变量的引用。使用
.length=0
可以清除原始数组,保留原始引用完整。

使用
array=new array()您将创建一个新引用

清除数组并保留引用的更好方法是:

var array = [1,2,3,4,5];

while (array.length) {
    array.pop();
}

再看看这个完全相同的问题:

这不是一个更好的方法
.length=0
会更好。@RajaprabhuAravindasamy:为什么会更好?有参考资料吗?谢谢,我不知道这在每个浏览器中都可以使用,而且速度更快。因此,您是对的,最好使用
。length=0
正如您所说,使用
[]
.length=0
之间有很大区别。当这种差异影响结果时,你能想出一个实际的场景吗。