2016-07-29 2 views
0

나는이 같은 구조 배열이 있다고 가정어떻게 특정 값을 사용하여 배열 요소를 제거하는

{ q1: true, q2: false, q3: false, q4: true, q5:true } 

AngularJS와의 값은 "거짓"이 모든 요소를 ​​제거하는 방법이 있나요를?

splice()를 사용하여 인덱스 번호를 얻으려고했지만 행운이 없었습니다. 이제 특정 인덱스 번호를 사용할 필요가없는 방법을 찾고 있습니다.

도움을 주시면 감사하겠습니다. 고맙습니다.

답변

1

간단한 자바 스크립트 방식

var r = { 
 
    q1: true, 
 
    q2: false, 
 
    q3: false, 
 
    q4: true, 
 
    q5: true 
 
}; 
 

 
for (a in r) { 
 
    if (!r[a]) { 
 
    delete r[a] 
 
    } 
 
} 
 

 
console.log(r);

+0

내가 찾고있는 것. 고맙습니다. 그것은 위대한 작품. :) –

0

이것은 배열이 아니며 개체입니다.

angular.forEach(obj, function (val, key) { 
    if (!val) { 
    delete obj[key]; 
    } 
}); 
0

당신은 객체가 아닌 배열 공급 : 당신은 누구의 값 falsy있는 모든 키를 제거하려면이 기능을 사용할 수 있습니다. Array.prototype.splice은 배열이 아니라 객체와 함께 작동합니다.

배열에서 원치 않는 값을 필터링하려면 Array.prototype.filter을 사용해야합니다.

[true, false, false, true, true].filter(function(el){ return el; }); 
// returns [true, true, true] 
관련 문제