2017-10-27 10 views
-1

私はすべての好きなものの合計を見つけようとしています。私が得ているエラーは、投稿が存在しないということです。 Userはpostsプロパティを持つオブジェクトで、オブジェクトの配列です。どのようにしてlikesプロパティにアクセスしますか?おかげでここJavaScriptでオブジェクトの配列をループする

var sum = 0; //initialize sum 
    //create user object 
    var user = { 
     posts: [ 
      { 
      likes: 10 
     } 
      { 
      likes: 15 
     } 

    ] 
    } 
    //Getting the sum of all likes. But doesn't work. 
    for(i = 0; i < posts.length; i++) { 
     sum += user.posts[i].likes; 
    } 
    return sum; 
+4

'私はuser.posts.length' <? –

+0

Thnks。私は間違った方法で配列にアクセスしていました。 – yaareedh

答えて

0

reduce()が可能集約を容易にするために使用:

var user = { posts: [ { likes: 10 }, { likes: 15 } ] } 
 

 
var sum = user.posts.reduce((s, o) => s + o.likes, 0) 
 

 
console.log(sum)

0

は正しいコードです:

var sum = 0; //initialize sum 
//create user object 
var user = { 
    posts: [{ 
      likes: 10 
     }, 
     { 
      likes: 15 
     } 

    ] 
} 
//Getting the sum of all likes. But doesn't work. 
for (var i = 0; i < user.posts.length; i++) { 
    sum += user.posts[i].likes; 
} 
console.log(sum); 
0

あなたはそれがあなたのundefinedを投げるだろう、このposts.lengthのようなオブジェクトのプロパティにアクセスすることはできません、あなたはuser.posts.lengthを使用する必要があります。

for(var i=; i<user.posts.length; i++){ 
    sum += user.posts[i].likes; 
} 
return sum; 
0

単純何か代わりの機能

var sum = 0; 
 
var user = { 
 
    posts: [ 
 
     { 
 
     likes: 10 
 
    }, 
 
     { 
 
     likes: 15 
 
    } 
 

 
] 
 
} 
 

 
user["posts"].map(ele => sum=+ele["likes"]); 
 
console.log(sum);

関連する問題