これはおそらく本当に馬鹿げたものですが、なぜこれが機能しないのか理解できません。
var a = {"cat":"large"};
a.forEach(function(value, key, map){
console.log(value);
});
不明なTypeError:a.forEachは関数ではありません
オブジェクトにはforEach
がなく、 Array
プロトタイプに に属します。オブジェクトの各キーと値のペアを反復処理して値を取得する場合。あなたはこれを行うことができます:
_Object.keys(a).forEach(function (key){
console.log(a[key]);
});
_
使用上の注意:オブジェクトの場合_v = {"cat":"large", "dog": "small", "bird": "tiny"};
_、Object.keys(v)
はキーの配列を提供するので、取得します["cat"、 "dog"、 "bird"]
から結果にアクセスしようとしたとき
Object.keys(a).forEach(function (key){ console.log(a[key]); });
これは、キーと値のペアがないプレーンテキストの結果でした。次に例を示します。
var fruits = {
Apple: "fruits/Apple.png",
banana: "fruits/banana.png",
watermelon: "watermelon.jpg",
grapes: "grapes.png",
orange: "orange.jpg"
}
今、私はすべてのリンクを分離された配列で取得したいが、このコードで
function linksOfPics(obJect){
Object.keys(obJect).forEach(function(x){
console.log('\"'+obJect[x]+'\"');
});
}
結果として :
linksOfPics(fruits)
"fruits/Apple.png"
"fruits/banana.png"
"watermelon.jpg"
"grapes.png"
"orange.jpg"
undefined
私が探しているものを解決するこれを見つけました
console.log(Object.values(fruits));
["fruits/Apple.png", "fruits/banana.png", "watermelon.jpg", "grapes.png", "orange.jpg"]