在角度中,如何存储最后显示的100个项目。我用'array.push'插入的数组实现了它。如果数组不适用于这种情况,我该怎么办。
代码如下:
$interval(function()
{
$http.get("...")
.success(function(){
for(var index in response.logs)
{
$scope.logs.push(response.logs[index]);
}
})
}, 1000);
<div ng-repeat="log in logs">{{log.time}}: {{log.log}}</div>
答案 0 :(得分:4)
使用.slice
:
var a = [1,2,3,4,5];
var lastValues = a.slice(-3); // -100 in your situation
// lastValues = [3,4,5]
答案 1 :(得分:0)
我发现这个阵列不是最好的。随着日志以1秒的间隔增加。当数组长度变得太长时,浏览器将变慢,然后冻结。 所以我为这种情况选择了一个循环缓冲区Cbuffer。
var cbuffer = new CBuffer(100); // empty buffer with size of 100
$interval(function()
{
$http.get("...")
.success(function(){
for(var index in response.logs)
{
cbuffer.push(response.logs[index]);
$scope.logs = cbuffer.toArray();
}
})
}, 1000);