为什么这个对象的"forEach不是函数"?

hav*_*ked 30 javascript foreach object

这可能是非常愚蠢的事情,但我不明白为什么这不起作用.

var a = {"cat":"large"};

a.forEach(function(value, key, map){
    console.log(value);
});
Run Code Online (Sandbox Code Playgroud)

未捕获的TypeError:a.forEach不是函数

http://jsfiddle.net/ty7z6pse/

Tao*_*oPR 60

对象不具备forEach的,它属于Array原型.如果要遍历对象中的每个键值对并获取值.你可以这样做:

Object.keys(a).forEach(function (key){
    console.log(a[key]);
});
Run Code Online (Sandbox Code Playgroud)

使用说明:对于一个对象v = {"cat":"large", "dog": "small", "bird": "tiny"};,Object.keys(v)给你一个键数组,这样你就可以得到["cat","dog","bird"]