Javascript 分解大型JSON对象

Javascript 分解大型JSON对象,javascript,loops,object,Javascript,Loops,Object,我有很多文件需要上传到我的数据库中,我是通过浏览器完成的,服务器对发送到它的数据存在大小问题,它拒绝了。在此上下文中,服务器不在我的控制之下,因此我需要将此对象分解为较小的对象,然后再将其发送到服务器以插入数据库(如果有必要,请重新考虑DB)。它们不需要按顺序插入,我只需要把文件分成小块 我知道我需要一个循环,但我不明白如何循环100个对象,将它们另存为另一个对象并将它们发送到服务器,然后从101开始,依此类推 循环遍历我得到的所有对象,但我无法理解或找到示例 下面的代码是为它的目的而工作的,但

我有很多文件需要上传到我的数据库中,我是通过浏览器完成的,服务器对发送到它的数据存在大小问题,它拒绝了。在此上下文中,服务器不在我的控制之下,因此我需要将此对象分解为较小的对象,然后再将其发送到服务器以插入数据库(如果有必要,请重新考虑DB)。它们不需要按顺序插入,我只需要把文件分成小块

我知道我需要一个循环,但我不明白如何循环100个对象,将它们另存为另一个对象并将它们发送到服务器,然后从101开始,依此类推

循环遍历我得到的所有对象,但我无法理解或找到示例

下面的代码是为它的目的而工作的,但是它只会转到250然后停止,它不会超过这个

var lineData = jsonData.theData;
var newData = [];
var newLine;
//Shows on the browser console how many objects there are in the data
console.log(jsonData.theData.length);

//Goes through the Data and grabs the first 1000 lines
    for(var i = 0; i< 250; i++){
    newLine = lineData[i]
    newData.push(newLine);
    console.log(lineData[i]);
    }
var lineData=jsonData.theData;
var newData=[];
var新线;
//在浏览器控制台上显示数据中有多少对象
log(jsonData.theData.length);
//遍历数据并获取前1000行
对于(变量i=0;i<250;i++){
换行符=行数据[i]
newData.push(换行符);
console.log(lineData[i]);
}

您所需要做的就是循环遍历对象,对于每100个对象,推出新数组并重新开始。比如:

var lineData = jsonData.theData;
var newData = [];

for (var i=0; i < lineData.length; i++) {
    newLine = lineData[i];
    newData.push(newLine);
    if (i && !(i % 100)) {
        // upload newData
        newData = [];
    }
}
// check if there's any data left
if (newData.length) {
    // upload the remaining data
}
var lineData=jsonData.theData;
var newData=[];
对于(变量i=0;i
提示:创建数组的数组。外部数组包含100个元素的内部数组。有没有办法让服务器管理员增加帖子的大小?对我来说,这似乎是解决这个问题的最佳方法。我可以,但我想把它作为一种学习经验。实际上,对于初学者(和其他任何人)来说,将责任分开会更有帮助:这样数据分割和数据发送就不会交错。在这种情况下,您将避免“上传”逻辑重复,并拥有更清晰的代码。@zerkms我理解,您将如何做到这一点?我们是否需要将100的每个数组保存为不同的变量?或者我们需要知道服务器的insert已经完成了吗?@illcrx不是不同的变量,而是我已经提到的嵌套数组。因此,您可以将当前阵列推送到另一个阵列,然后继续拆分。这会解决我的服务器大小导入问题吗?重组数据的原因是什么?@illcrx。关键是您将代码拆分为两个不同的逻辑部分:1。更改数据形状以进行进一步处理2。处理它(上传)。这样,您就有了更好的结构,并且不需要代码重复和冗余检查(正如这个答案所示)