每当您遇到与 API 无关的 google-apps-script 问题时,请先尝试搜索 javascript 问题。在这种情况下,我找到了JavaScript object size,并在 apps-script 中尝试了接受的答案。(实际上,“改进的”接受的答案。)我根本没有做任何更改,但在这里用测试功能复制了它,所以你可以剪切和粘贴来试用它。
这是我stud
在调试器中得到的测试对象。
现在,它并不完美——例如,它没有考虑您将在 ScriptDB 中使用的键的大小。另一个答案对此进行了抨击。但是由于您的对象包含一些潜在的巨大值,例如可以是 256 个字符长的电子邮件地址,因此密钥长度可能无关紧要。
// https://stackoverflow.com/questions/1248302/javascript-object-size/11900218#11900218
function roughSizeOfObject( object ) {
var objectList = [];
var stack = [ object ];
var bytes = 0;
while ( stack.length ) {
var value = stack.pop();
if ( typeof value === 'boolean' ) {
bytes += 4;
}
else if ( typeof value === 'string' ) {
bytes += value.length * 2;
}
else if ( typeof value === 'number' ) {
bytes += 8;
}
else if
(
typeof value === 'object'
&& objectList.indexOf( value ) === -1
)
{
objectList.push( value );
for( i in value ) {
stack.push( value[ i ] );
}
}
}
return bytes;
}
function Marks()
{
this.maxMarks = 100;
}
function Student()
{
this.firstName = "firstName";
this.lastName = "lastName";
this.marks = new Marks();
}
function test () {
var stud = new Student();
var studSize = roughSizeOfObject(stud);
debugger;
}