2016-10-19 6 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;'를 추가하십시오. LoL. 바람직하지 않은 영향을 미칠 수 있습니다. –

1

괄호는 이미 객체이므로 제거해야합니다. 배열 인덱스는 0부터 시작하므로 0을 기준으로 인덱스 값을 변경하십시오.

$scope.array1 = [ 
    $scope.songs[0] , 
    $scope.songs[5] 
]; 
관련 문제