importPackage(java.io);
importPackage(java.lang);
function recursiveSum(a) {
sum = 0;
for (i=0;i<a.length; ++i) {
if (typeof a[i] === "number") {
sum += a[i];
} else if (a[i] instanceof Array) {
sum += recursiveSum(a[i]);
}
}
return sum;
}
function arraySum(i) {
// i will be an array, containing integers, strings and/or arrays like itself.
// Sum all the integers you find, anywhere in the nest of arrays.
return recursiveSum(i);
}
print(arraySum([[1,2,3],4,5]))
aW1wb3J0UGFja2FnZShqYXZhLmlvKTsKaW1wb3J0UGFja2FnZShqYXZhLmxhbmcpOwoKZnVuY3Rpb24gcmVjdXJzaXZlU3VtKGEpIHsKICBzdW0gPSAwOwogIGZvciAoaT0wO2k8YS5sZW5ndGg7ICsraSkgewogICAgICBpZiAodHlwZW9mIGFbaV0gPT09ICJudW1iZXIiKSB7CiAgICAgICAgICBzdW0gKz0gYVtpXTsKICAgICAgfSBlbHNlIGlmIChhW2ldIGluc3RhbmNlb2YgQXJyYXkpIHsKICAgICAgICAgIHN1bSArPSByZWN1cnNpdmVTdW0oYVtpXSk7CiAgICAgIH0KICB9CiAgcmV0dXJuIHN1bTsKfQpmdW5jdGlvbiBhcnJheVN1bShpKSB7CiAgICAKICAgIC8vIGkgd2lsbCBiZSBhbiBhcnJheSwgY29udGFpbmluZyBpbnRlZ2Vycywgc3RyaW5ncyBhbmQvb3IgYXJyYXlzIGxpa2UgaXRzZWxmLgogICAgLy8gU3VtIGFsbCB0aGUgaW50ZWdlcnMgeW91IGZpbmQsIGFueXdoZXJlIGluIHRoZSBuZXN0IG9mIGFycmF5cy4KICAgIAogICAgcmV0dXJuIHJlY3Vyc2l2ZVN1bShpKTsKfQoKCnByaW50KGFycmF5U3VtKFtbMSwyLDNdLDQsNV0pKQ==