检查JavaScript操作的数量,使它们保持在服务器端执行的限制以下

问题描述

我需要检查我的脚本是否超出最大操作限制。此限制设置为每个脚本2000个操作(Rhino服务器端执行)。

我想知道如何计算js文件或此特定代码段的操作总数:

var storeObject = "hillutter,roco".split(',')
var storeObjectLength = storeObject.length;

var maxStoreSize = 10;
var userObject = "{'hillutter':5,'puriutter':10,'roco':10,'bianto':15,'anabelle':15,'puzon':15}"
var checkUserObjectLength = userObject.split(',').length;
userObject = JSON.parse(userObject.replace(/'/g,'"'));
maxStoreSize = maxStoreSize-storeObjectLength-1;

if(checkUserObjectLength>=maxStoreSize){ //if size greater than X entries,reduce to 
    var userSortArray = [];
    var plainObject = {}; //new sorted plain array
    var checkUserObject = Object.keys(userObject);
    for (var i = 0; i < maxStoreSize; i++) {
        var key = checkUserObject[i];
        userSortArray.push({storeStorageValue2: key,score: userObject[key]});
    }
    userSortArray.sort(function (a,b){ return b.score - a.score}); //sort
    userSortArray.filter(function(ele,i){ 
        if(i<(maxStoreSize-storeObjectLength)){ // max count minus parameter length
            plainObject[""+ele.storeStorageValue2+""] = ele.score 
        } 
    }); 
    userObject = plainObject;
}

console.log(userObject)

否则,可以进行哪些改进以减少操作。我认为可以将filter-loop合并到sort-loop中。但是我不知道如何使用这个关联数组。我已经尝试过使用“真实”数组,但遇到了最大的麻烦。操作限制,有了这个关联数组,我至少可以跳过循环。 目标是将 userObject 切断为 maxStoreSize ,但保留按分数排序的输出

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)