gpt4 book ai didi

javascript - "Update Integer Value"函数不完全准确

转载 作者:行者123 更新时间:2023-12-01 03:32:30 24 4
gpt4 key购买 nike

我正在使用 JavaScript 函数来跟踪/更新文件夹内的文件数量。大多数时候它相当准确,但误差幅度约为 10%。我认为这与“totalItemCount”变量未正确更新有关。我已经找了好几个小时了,但找不到我可能搞砸的地方。这是一个很长的文件,但实际上您需要查看的只是“totalItemCount”变量

new ApiClient({
//marketing (69 Files, 40 Folders, 109 total, 204MB): 7f6d706e-6754-e411-b5b8-d4ae5294c399
//tgsr/...governence (1,302 Files, 130 Folders, 1432 total): bba3bd73-f855-e411-b5b8-d4ae5294c399
//infrastructureSoftware(): 7009c1d2-7e67-e511-80cc-000af7703bc2
// HELM Platform: bbab7b02-4e39-4287-abd2-445688cf4fb1

//bbl... 6ce640d2-722f-48b4-a1de-7a059305b6c3
apimethod: 'objects/95750c6b-84f5-4587-8b86-b559551f7660/children/view',
method: 'get',
queryparams: {
maxcount: 8000,
startindex: 0,
includefuturepublished: true
},
onSuccess: function (responseText)
{
var result = JSON.parse(responseText);
var originalObject = result; //first, top-level object
var totalItemCount = 0;
var filesize = 0;

totalItemCount += parseInt(result.response.totalCount);

//Check if object has children and add to totalItemCount accordingly FOR EACH object:

function getItemsRecursively(totalItemCount1, filesize1)
{
for(var i = 0; i < parseInt(totalItemCount); i++) //at this point, totalCount == #objects at this lvl
{
var currentObject = result.response.items[i];

if(currentObject.size != undefined)
{
filesize += currentObject.size;
filesize1 = filesize;
}


if(currentObject.numchildren > 0 && currentObject.numchildren != undefined)
{
getChildrenItemCount(totalItemCount1, currentObject, filesize1);
}

}
}

function getChildrenItemCount(totalItemCount2, previousObject, filesize2)
{
//totalItemCount2 = totalItemCount;
var childID = previousObject.id;
new ApiClient
({
apimethod: 'objects/' + childID + '/children/view',
method: 'get',
queryparams: {
maxcount: 8000,
startindex: 0,
includefuturepublished: true
},
onSuccess: function (responseText)
{
var result = JSON.parse(responseText);
var currentObject = result.response;

var currentFolderItemCount = currentObject.totalCount;

for(var i = 0; i < parseInt(currentFolderItemCount); i++) //at this point, totalCount == #objects at this lvl
{
var currentObject = result.response.items[i];

if(currentObject.size != undefined)
{
filesize += currentObject.size;
filesize2 = filesize;
}

if(currentObject.numchildren > 0 && currentObject.numchildren != undefined)
{
totalItemCount += parseInt(currentObject.numchildren);
totalItemCount2 = totalItemCount;
getChildrenItemCount(totalItemCount2, currentObject, filesize2);
}

//var filesize = currentObject.size;

}
}
})
}

getItemsRecursively(totalItemCount, filesize);

}
})

最佳答案

我无法对我当前的代表发表评论,因此对 SO 社区作为答案发布感到抱歉。

很高兴看到 totalCount 是如何设置的(其中显示 result.response.totalCount)。

此外,我建议删除所有 console.log。这使得阅读你的代码变得非常困难。

如果一个文件夹包含一个文件夹,那么它是否符合您的文件条件?如果是这样,您的代码中有这样的逻辑吗?

一旦您按照我的建议进行更新,我很乐意再看一眼。

更新:尝试此代码。我无法测试,所以你会让我知道它是如何工作的。

var totalItemCount;
new ApiClient({
apimethod: 'objects/95750c6b-84f5-4587-8b86-b559551f7660/children/view',
method: 'get',
queryparams: {
maxcount: 8000,
startindex: 0,
includefuturepublished: true
},
onSuccess: function (responseText) {

var result = JSON.parse(responseText);
totalItemCount = parseInt(result.response.totalCount);

getItemsRecursively();
}
});

function getItemsRecursively() {

for(var i = 0; i < parseInt(totalItemCount); i++) {

var currentObject = result.response.items[i];

if(currentObject.size != undefined) {
filesize += currentObject.size;

if(currentObject.numchildren > 0 && currentObject.numchildren != undefined) {
getChildrenItemCount(currentObject);
}

}
}
}



function getChildrenItemCount(previousObject) {
var childID = previousObject.id;
new ApiClient
({
apimethod: 'objects/' + childID + '/children/view',
method: 'get',
queryparams: {
maxcount: 8000,
startindex: 0,
includefuturepublished: true
},
onSuccess: function (responseText)
{
var result = JSON.parse(responseText);
var currentFolderItemCount = result.response.totalCount;

for(var i = 0; i < parseInt(currentFolderItemCount); i++)
{
var currentObject = result.response.items[i];

if(currentObject.numchildren > 0 && currentObject.numchildren != undefined)
{
totalItemCount += parseInt(currentObject.numchildren);
getChildrenItemCount(currentObject);
}

}
}
})
}

关于javascript - "Update Integer Value"函数不完全准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44466579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com