Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建本机JSON数组时,如何将其限制为10个最新值_Javascript_Jquery_Json - Fatal编程技术网

Javascript 创建本机JSON数组时,如何将其限制为10个最新值

Javascript 创建本机JSON数组时,如何将其限制为10个最新值,javascript,jquery,json,Javascript,Jquery,Json,我正在创建一个JSON数组,如下所示(使用mathrandom) 例如: var numbers = []; var jsonString = ""; function EveryOneSec() { numbers.push(Math.random()); jsonString = JSON.stringify({'numbers': numbers}); setTimeout(EveryOneSec, 1000); } 当我创建JSON字符串时,它显然会变得越来越大 有没有一

我正在创建一个JSON数组,如下所示(使用mathrandom)

例如:

var numbers = [];
var jsonString = "";

function EveryOneSec() {
  numbers.push(Math.random());
  jsonString = JSON.stringify({'numbers': numbers});
  setTimeout(EveryOneSec, 1000);
}
当我创建JSON字符串时,它显然会变得越来越大


有没有一种方法可以让我只将最近的10个添加到数组中?

有几种方法可以处理这个问题,但这里有一种(添加注释):

注意我非常认真地回答了OP的问题。这允许数字数组继续增长,但将JSON版本限制为仅10项

var number=[];
var jsonString=“”;
函数EveryOneSec(){
push(Math.random());
//获取总数,减去10即可获得起始索引
var l=数字。长度-10;
//如果l<10,则少于10项,将0传递给切片。
//否则,传递起始索引以获取最后10个数字
jsonString=JSON.stringify({'numbers':numbers.slice(l<0?0:l)});
setTimeout(EveryOneSec,1000);
}

将以下代码添加到
EveryOneSec

if (numbers.length == 10) {
    numbers.shift();
}

您需要使用
push
shift
来确保您始终拥有最新的10。

您可以通过使用

var number = Array(10);

两个缺点,你必须保持索引<代码> > I++<代码>,而不是使用<代码>数字。推< /代码>,JSON字符串将包含空白空间。但是,如果我没记错的话,

numbers[numbers.length]=
应该比
numbers.push()更快。所以跟踪索引可能会更快。

哈哈,我就是这么快;)不,我想提高投票率,但我必须等到它被修复@小崎。没问题。但是速度对我来说,这看起来更干净:
numbers.length>10?numbers.slice(-10):numbers
@Casey,看起来干净多了。。。好建议!
var number = Array(10);