2016-05-05 26 views
1

我从一个PHP页面得到这个JSON对象:通过JSON对象Loopring并打印其值(jQuery的)

{ 
    "0": "8:00", 
    "1": "8:30", 
    "2": "9:00", 
    "3": "9:30", 
    "4": "10:00", 
    "5": "10:30", 
    "6": "11:00", 
    "7": "11:30", 
    "8": "12:00", 
    "9": "12:30", 
    "10": "13:00", 
    "11": "13:30", 
    "12": "14:00", 
    "13": "14:30", 
    "14": "15:00", 
    "15": "15:30", 
    "18": "17:00", 
    "19": "17:30", 
    "20": "18:00", 
    "21": "18:30", 
    "22": "19:00", 
    "23": "19:30" 
} 

,我想通过它来运行,并打印其值。现在我可以使用Json.stringify将所有东西打印到屏幕上(完全按照上面粘贴的那样),但是我只想打印没有键的值。如果我尝试的结果打印到控制台像

console.log(results); 

我得到的是

Object {hours: Object} 

我在做JSON调用和操纵响应相当新的,所以我不能完全做什么我只需要看看我发现的其他问题。由于

编辑:我期待的结果是

8:00 
9:00 
etc 

上一个div。

+0

“打印其值”不清楚。显示如何看看预期的结果 – RomanPerekhrest

+0

[通过JavaScript对象循环]可能的重复(http://stackoverflow.com/questions/684672/loop-through-javascript-object) – Rajesh

+0

添加到主帖子,谢谢。 –

回答

0

要提取对象的值并丢弃键,你想链Object.keysArray.prototype.map像这样:

var data = { "0": "8:00", "1": "8:30", "2": "9:00", "3": "9:30", "4": "10:00", "5": "10:30", "6": "11:00", "7": "11:30", "8": "12:00", "9": "12:30", "10": "13:00", "11": "13:30", "12": "14:00", "13": "14:30", "14": "15:00", "15": "15:30", "18": "17:00", "19": "17:30", "20": "18:00", "21": "18:30", "22": "19:00", "23": "19:30" }; 
var result = Object.keys(data).map(function (key) { 
    return data[key]; 
}); 
console.log(result); 
2

您通过对象假设结果对循环为对象

for(var hours in results){ 
    console.log(results[hours]); 
} 
+0

我认识到在他的例子中没有必要,但总是很好的检查我感觉到的'hasOwnProperty'。 – IMTheNachoMan

+0

Object.keys'会为你做属性检查并避免原始'for ... in'循环的复杂性。 – ssube

+0

必须是“console.log(results [hours]);” –

2

您可以使用for ...循环:

for(var hours of results){ 
    console.log(hours); 
} 
0

这是n在您的示例中不必要,因为您从页面获取JSON,但为了避免将来可能出现的问题,您应该始终执行hasOwnProperty检查以确保只获取JSON对象的属性并且不会继承属性:

for(key in data) 
{ 
    if(data.hasOwnProperty(key)) 
    { 
     console.log(data[key]); 
    } 
} 
+0

或者你可以像Ivan建议的那样使用for..of循环。 –

+0

@Pamblam:DOH!我没有看到。谢谢! – IMTheNachoMan