我有以下JSON对象:
var json = {"tsn": {
"settings":
{"app_name": "TSN", "version": "1.0"},
"occurrences":
["Party", "Music"]
}
};我真的不明白为什么我不能像这样访问它的值:
json.tsn.forEach(function(item){
console.log(item.settings.app_name);
console.log(item.occurrences);
});我得到了json.tsn.forEach is not a function。
发布于 2017-02-19 23:30:51
forEach是一种可用于数组的方法;它不适用于非数组对象。
事实上,你不需要对你正在做的事情进行迭代。只需执行以下操作:
var item = json.tsn;
console.log(item.settings.app_name);
console.log(item.occurrences);或者,您可以使用Object.keys来获取键数组,然后您可以像这样继续:
Object.keys(json.tsn).forEach(function(key){
var item = json.tsn[key];
console.log(item);
});或者甚至使用Object.entries来获取键/值对:
Object.entries(json.tsn).forEach(function([key, item]){
console.log(key, item);
});发布于 2017-02-19 23:43:34
forEach方法不是the Object specification的组成部分。
若要循环访问对象的可枚举属性,应使用for...in语句。
var json = {
"tsn": {
"settings": {
"app_name": "TSN",
"version": "1.0"
},
"occurrences": ["Party", "Music"]
}
};
for (var prop in json) {
console.log(json[prop].settings.app_name);
console.log(json[prop].occurrences);
}https://stackoverflow.com/questions/42329050
复制相似问题