2016-10-19 22 views
1

だから、例えば、私は私が必要とするすべての情報をメインアレイがあります。配列の要素を別の配列に含めるにはどうすればよいですか?

$scope.songs = [ 
    { title: 'Reggae', url:"#/app/mworkouts", id: 1 }, 
    { title: 'Chill', url:"#/app/browse", id: 2 }, 
    { title: 'Dubstep', url:"#/app/search", id: 3 }, 
    { title: 'Indie', url:"#/app/search", id: 4 }, 
    { title: 'Rap',  url:"#/app/mworkouts", id: 5 }, 
    { title: 'Cowbell', url:"#/app/mworkouts", id: 6 } 
    ]; 

を私が最終的な結果は

のようになりますので、各オブジェクトを入力せずに、別の配列にのみ特定のオブジェクトを配置します
$scope.array1 = [ 
    { title: 'Reggae', url:"#/app/mworkouts",id: 1 }, 
    { title: 'Cowbell', url:"#/app/mworkouts",id: 6 } 
    ]; 

私は運でこれを試してみました:

$scope.array1 = [ 
    { $scope.songs[1] }, 
    { $scope.songs[6] } 
    ]; 

私はこれらの束を行う必要がありますので、各オブジェクトに入力すると永遠にかかるだろう、さこれを行うより速い方法がありますか?ありがとうございます。

+2

'$ scope.array1 = [ $ scope.songs [1]、 $ scope.songs [6] ]; ' –

+1

恐ろしい!正しい構文を知らないのは難しいです...もう一度ありがとう! – MehdiN

答えて

2

あなたはこのような何かをする必要があります。ここでは

$scope.array1 = $scope.songs.filter(function (song) { 
    return (song.title == "Reggae" || song.title == "Cowbell"); 
}); 

は、filter機能はあなたオリジナルのスコープ値のために交換するフィルター新しい配列を与えるだろう。あなたが使用することができ、配列のインデックスを使用して

console

または、簡単な方法で、:

$scope.array1 = [ $scope.songs[0] , $scope.songs[5] ]; 
+0

物事をシンプルでセクシーに保つために、オブジェクト内の情報を変更する方法はありますか?他の情報はすべて同じですか?たとえば、titleとurlを同じにしたままid:1からid:45に変更します。 – MehdiN

+0

@MehdiNはい、できます。return文の前に 'song.id + = 44;'を追加するだけです。笑。望ましくない影響を与える可能性があります。 –

1

すでにカッコが存在するので、カッコを削除する必要があります。配列インデックスは0から始まりますので、0に基づいてインデックス値を変更してください。

$scope.array1 = [ 
    $scope.songs[0] , 
    $scope.songs[5] 
]; 
関連する問題