创建新数组和清除长度之间的差异
Difference between create a new Array and clear the length
如果必须删除数组中的所有项,那么使用new Array
和length = 0
有什么区别?在这个例子中,显然结果看起来是一样的。
function MyCtrl($scope) {
$scope.arrayData = ["1", "2", "3"];
$scope.newArray1 = function(){
$scope.arrayData = new Array();
}
$scope.newArray2 = function(){
$scope.arrayData = [];
}
$scope.lengthZero = function(){
$scope.arrayData.length = 0;
}
$scope.populate = function(){
$scope.arrayData.push("1", "2", "3");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="MyCtrl">
Data:
</h2><br>
<ul>
<li ng-repeat="data in arrayData">{{data}}</li>
</ul>
<button ng-click="newArray1()">New Array - 1st method</button>
<button ng-click="newArray2()">New Array - 2nd method</button>
<button ng-click="lengthZero()">Length = 0</button>
<button ng-click="populate()">Populate</button>
</div>
只使用[]
和.length = 0
有很大的区别。
如果使用= []
,将为变量指定一个新的引用,从而丢失对原始变量的引用。通过使用.length = 0
,您将清除原始数组,使原始引用保持不变。
使用array = new Array();
,您将创建一个新的引用。
清除数组并保留引用的更好方法是:
var array = [1,2,3,4,5];
while (array.length) {
array.pop();
}
也可以看看这个完全相同的问题:Array.length=0和Array=[]之间的差异?
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 单击jquery清除输入值
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- d3中堆栈函数和嵌套函数之间的差异
- JQuery:在页面之间滑动
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 操作放置在画布上的元素之间的连接
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- jquery在表单之间切换
- 创建新数组和清除长度之间的差异
- 在画布中清除矩形和用背景色填充矩形之间的区别
- 如何移动一个矩形与箭头键,同时清除画布之间的每次重新绘制
- 如何在Node.js中清除函数调用之间的Windows 7控制台屏幕?