将递归 jQuery For each 循环转换为 JavaScript for VBA 脚本控制

Convert Recursive jQuery For each loop into JavaScript for VBA Script Control

我正在尝试使用以下脚本循环访问嵌套的 JSON 对象。它在 html 中工作正常,但是,我从 Excel VBA ScriptControl 对象调用它。当我这样做时,“$”

returns 出现 "undefined" 错误

我假设这是因为 VBA ScriptControl 不允许 jQuery(是真的吗?)

那么...能否帮助将下面的“$.each()”部分转换为 javascript?

代码:

function jsonFunction() {
    var jsonObj = {
        Item1: 'This is a test',
        Item2: { Value1: '100', Value2: '200' },
        Item3: { Value1: '101', Value2: '201' },
    };

    var result = '';

    $.each(jsonObj, jsonLoop);

    function jsonLoop(key, value) {
        if (typeof value === 'object') {
            $.each(value, jsonLoop);
        } else {
            result += key + ' : ' + value + ', ';
        }
    } 
    return result;
}

您可以创建自己的 each 函数

function each(obj, cb) {
    for (var key in obj) {
        cb(key, obj[key]);
    }
}

function jsonFunction() {
    var jsonObj = {
        Item1: 'This is a test',
        Item2: { Value1: '100', Value2: '200' },
        Item3: { Value1: '101', Value2: '201' },
    };

    var result = '';

    each(jsonObj, jsonLoop);

    function jsonLoop(key, value) {
        if (typeof value === 'object') {
            each(value, jsonLoop);
        } else {
            result += key + ' : ' + value + ', ';
        }
    } 
    return result;
}