将递归jQuery转换为每个循环到VBA脚本控件的JavaScript

时间:2016-09-21 03:01:00

标签: javascript jquery excel vba scriptcontrol

我试图使用以下脚本来迭代嵌套的JSON对象。它在html中工作正常,但是,我从Excel VBA ScriptControl对象调用它。当我这样做时,它返回一个" 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;
}

1 个答案:

答案 0 :(得分:1)

您可以创建自己的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;
}