2016-07-13 5 views
0

私はしばらくこの問題に悩まされています。基本的には、このように、一緒にbestScoreプロパティを私は(今のところ唯一の「00」のオブジェクトに焦点を当てた)オブジェクトの配列を持っている、と私はグループにしたい:配列内のオブジェクト内の異なるJavascriptプロパティをそれぞれ別々に区切ります。

..

ユーザグループ

リンゴ

..

ユーザグループ

バナナ、

starfruit

..

ユーザグループ

トマト

..

ここで私は今のところ...私はこれで初心者ですので、私しているコードです私はちょっと困りました。

var playerBatch = new Array(); 

playerBatch["00"] = 
[ 
{userName: "apple", bestScore: "10"} 
{userName: "banana", bestScore: "20"} 
{userName: "starfruit", bestScore: "20"} 
{userName: "tomato", bestScore: "30"} 
]; 


var batch = "00"; 

for (i=0; i < playerBatch[batch].length; i++) { 
    if (playerBatch[batch][i].bestScore == "10") { 
     document.write("User Group") 
     document.write(playerBatch[batch][i].userName) 
    } 
}; 

誰かがこれに対処する方法についてアイデアを持っているなら、私は非常に感謝しています。

ありがとうございます。

+1

あなたは機能が何であるかを知っていますか? – madalinivascu

+0

実際、そうです。私は実際のコードで1を使用しています。私は関数に入れるべきものを知るためのコードの超簡単版を投稿しています。だから無礼にする必要はありません。 – zed

答えて

0

編集:この例では、間違っているように見えますが、オブジェクト間のコンマはplayerBatch["00"]です。あなたが選別作業に入る前に、それは全部を荒くするでしょう。

複数の結果をグループ化するには、document.write()を呼び出す前にすべての一致(ローカルスコープの配列の可能性が高い)をキャッシュ/格納する必要があります。

...そしてあなたが bestScoreによってすべてのグループを一覧表示したい場合は、可能な bestScore値のリスト(配列)、コードのようなものを持つことによる その後、ループを構築するための配列をループしていますあなたはすでに書いています。

これは、文書に書いている(出力)文字列をマッサージして、 "ユーザーグループ"とその結果のマッチ(スペース)を区切り、改行を制御する、または意味論的なHTMLで文字列をラップします。完成したレイアウトがなければならないどのように複雑に応じて、HandelbarsあるいはNano (templates)のようなテンプレートライブラリを使用しての恩恵を受ける可能性があります。この私の機能をUnderscoreJSのGROUPBYを使用して一緒に

var playerBatch = new Array(); 
 

 
playerBatch["00"] = [{ 
 
    userName: "apple", 
 
    bestScore: "10" 
 
}, { 
 
    userName: "banana", 
 
    bestScore: "20" 
 
}, { 
 
    userName: "starfruit", 
 
    bestScore: "20" 
 
}, { 
 
    userName: "tomato", 
 
    bestScore: "30" 
 
}]; 
 

 

 
var batch = "00", 
 
    groupArray = []; 
 

 
for (i = 0; i < playerBatch[batch].length; i++) { 
 
    if (playerBatch[batch][i].bestScore == "20") { 
 
    groupArray.push(playerBatch[batch][i].userName) 
 
    } 
 
}; 
 

 
if(groupArray.length){ 
 
    document.write("User Group: "); 
 
    document.write(groupArray.join(", ")); 
 
}

0

おかげ伊藤は、トリックをしました!私はあなたの助けのための信用を得るように、どのように「決意」正式にこの質問わからないんだけど、私はすべてのセットだように見えます。

var playerBatch = new Array(); 
 

 
playerBatch["00"] = [{ 
 
    userName: "apple", 
 
    bestScore: "10" 
 
}, { 
 
    userName: "banana", 
 
    bestScore: "20" 
 
}, { 
 
    userName: "starfruit", 
 
    bestScore: "20" 
 
}, { 
 
    userName: "tomato", 
 
    bestScore: "30" 
 
}]; 
 

 

 
var batch = "00", 
 
    groupArray = []; 
 

 
for (i = 0; i < playerBatch[batch].length; i++) { 
 
    if (playerBatch[batch][i].bestScore == "20") { 
 
    groupArray.push(playerBatch[batch][i].userName) 
 
    } 
 
}; 
 

 
if(groupArray.length){ 
 
    document.write("User Group: "); 
 
    document.write(groupArray.join(", ")); 
 
}

関連する問題