将递归 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;
}
我正在尝试使用以下脚本循环访问嵌套的 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;
}