由于数据量较大,我设置了数组$scope.event
的大小限制,因此当它达到BufferLimit
时,从数组中删除第一个项目并将最新项目添加到数组中。在删除或添加项时,使用slice
或splice
哪种方法更好?
Ctrl.js
$scope.event = [];
function safelyAdd(element) {
if (totalReceived > Bufferlimit && $scope.event.length) {
$scope.event = $scope.event.slice(1); //delete first element in $scope.event
totalReceived -= $scope.event[0].messageSize; //total message size minus deleted message size
console.log('totalReceivedBytes', totalReceived);
// $scope.event =[];//reset array if max size reached..
console.log('$scope.event', $scope.event)
}
console.log('$scope.event.length', $scope.event.length);
$scope.event.push(element); //then push new item..
}
slice()
返回一个新的数组,而splice()
则直接修改原数组,并返回被移除元素组成的数组:https://jsfiddle.net/4hs0Lvy6/ 请注意,这种选择似乎最多只能算是微小的优化,因此最好的方法几乎肯定是保持与您或您团队通常的编程实践一致。 - David Thomas