You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpiderMonkey 1.8中如何遍历JavaScript对象的键与值?

正确获取JavaScript对象的键和值(SpiderMonkey 1.8环境)

你当前代码的问题出在Array.map()的回调参数理解错误:map的回调函数第一个参数是当前遍历到的键名,第二个参数是该键在Object.keys()返回数组中的索引,并非对象对应的值。所以jsonData[values]会因为索引不是对象的有效键,返回undefined。

下面是几种正确的实现方式:

方式1:直接用Object.keys()配合map遍历键值

jsonData = {"jurisdiction":"SCPB - LON","firstName":"David Dynamic"}

Object.keys(jsonData).map(function(key) {
    // key是对象的键,jsonData[key]就是对应的值
    logInfo(key, jsonData[key]);              
});

执行后会输出:

2022-08-30 18:29:49 jurisdiction SCPB - LON
2022-08-30 18:29:49 firstName David Dynamic

方式2:收集键值对到数组(如需后续复用)

jsonData = {"jurisdiction":"SCPB - LON","firstName":"David Dynamic"}

var keyValuePairs = Object.keys(jsonData).map(function(key) {
    return { 键: key, 值: jsonData[key] };
});

// 遍历数组输出
keyValuePairs.forEach(function(pair) {
    logInfo(pair.键, pair.值);
});

方式3:用for...in循环(更直观的遍历方式)

SpiderMonkey 1.8支持for...in循环,这种方式遍历对象键值更直接:

jsonData = {"jurisdiction":"SCPB - LON","firstName":"David Dynamic"}

for (var key in jsonData) {
    // 加上hasOwnProperty判断,避免遍历原型链上的继承属性
    if (jsonData.hasOwnProperty(key)) {
        logInfo(key, jsonData[key]);
    }
}

内容的提问来源于stack exchange,提问作者David Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:19:20