2017-09-20 5 views
0

基本的に、私は次の配列(またはJSON)があります。与えられた配列の子はどうやって見つかりますか?

apps = { 
    app1: 
    [ 
     "ci-extension", 
     "Unnamed", 
     "<h1>Hello world!</h1>" 
    ], 
    app2: 
    [ 
     "ci-extension", 
     "Another one!", 
     "Cool!" 
    ], 
} 

は、配列がどのように多くの子供を持っていないかを決定する方法はありますか? など。この場合の答えは2app1 & app2です。もう1つのオブジェクト "application"を追加すると、答えは3になります。私が試した次

apps.length 
//returns "undefined" 

for (i = 0; apps[i] != undefined; i++) { 
    console.log(apps[i]); 
    //also returns "undefined" 
    //I am later gonna use also the values in the child, so I stored all the children to a new array 
    meta.push(apps[i]); //"meta" here is another vriable with an array in it 
} 


が、私はこのような何か返すことforを期待(これはどんな意味がある場合):

APP1
APP2
アプリケーションを(追加した新しいオブジェクトを数える場合)

metaの値は["app1", "app2", "application"]となります。

私の心は完全に難読化されました。どこに何が間違っているのかわからないので、どんな助けも高く評価されます。前もって感謝します!

EDIT: push()要素にはいくつかの方法がappsにあった場合、私は親切に私を点灯するように要求されます。再度、感謝します!

+3

'apps'にこのオブジェクトにプロパティを割り当てることができます配列でもJSONでもありません - オブジェクトリテラルです(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Object_literals)。 – chazsolo

答えて

0

あなたがここにObject.keys(以下

let apps = { 
 
    app1: 
 
    [ 
 
     "ci-extension", 
 
     "Unnamed", 
 
     "<h1>Hello world!</h1>" 
 
    ], 
 
    app2: 
 
    [ 
 
     "ci-extension", 
 
     "Another one!", 
 
     "Cool!" 
 
    ], 
 
} 
 

 
let result = Object.keys(apps).length; 
 

 
console.log(result);
を行うことができます)は、オブジェクト内のすべてのキーの配列を返します。あなたは、単にオブジェクトにあなたのキーの総数を与えるだろう、この配列の長さを必要とする

あなたは、次のよう

let apps = { 
 
    app1: 
 
    [ 
 
     "ci-extension", 
 
     "Unnamed", 
 
     "<h1>Hello world!</h1>" 
 
    ], 
 
    app2: 
 
    [ 
 
     "ci-extension", 
 
     "Another one!", 
 
     "Cool!" 
 
    ], 
 
} 
 

 
apps['app3'] = ["test"]; 
 
let result = Object.keys(apps).length; 
 
console.log(result); 
 
// or the following way 
 
let objectToPush = {app4: ['test2']}; 
 
Object.assign(apps, objectToPush); 
 
console.log(Object.keys(apps)); 
 
console.log(Object.keys(apps).length);

+0

迅速な回答ありがとうございます!私は3つのことを尋ねました、そして、これは私がすべてを解決するのに役立つでしょう!あなたは素晴らしいです! –

+0

更新された回答を見る – marvel308

関連する問題