2011-08-26 6 views
3

나는 색상에 빨간색 객체의 배열을 반환하는 방법을반환 JSON 객체

objArray = [{"color":"red", "width":5, "price":10}, 
    {"color":"green", "width":4, "price":8}, 
    {"color":"red", "width":7, "price":11}] 

같은 객체의 배열을 자바 스크립트 또는 JQuery와

+2

대하여 반복하고'color'이고 새로운 배열에 해당 오브젝트를 추가 (생성 된 컬러 값을 기록 $.each()에 전달 배열 변경) ''레드 ''. 또는 무엇이 문제입니까? https://developer.mozilla.org/en/JavaScript/Guide/Statements#Loop_Statements (JSON 객체가 아니라 단지 객체의 배열입니다). –

+0

내 설명에있는 객체의 배열은 ... – dardub

+1

그럼 JSON에 대해 궁금한 점이 있습니까? –

답변

3
var objArray = [{"color":"red", "width":5, "price":10}, 
    {"color":"green", "width":4, "price":8}, 
    {"color":"red", "width":7, "price":11}] 

var tmp = [] 

$.each(objArray,function(i,val){ 
    if(val.color == 'red') 
    { 
     tmp.push(objArray[i]); 
    } 
}); 

console.log(tmp); 
3

만약 "반환"에 의해

return objArray.filter(function(v) { return v.color === 'red'; }); 
:
, 당신이 말은 다음과 같은 Array.prototype.filter을 사용할 수 있습니다, 함수에서 반환

var red_array = objArray.filter(function(v) { return v.color === 'red'; }); 

오래된 브라우저 커버, the MDN .filter() shim 사용 : 당신은 그냥 변수에 저장하고 싶다면

후 그냥 같은 관하여

if (!Array.prototype.filter) { 
    Array.prototype.filter = function (fun /*, thisp */) { 
     "use strict"; 

     if (this === void 0 || this === null) throw new TypeError(); 

     var t = Object(this); 
     var len = t.length >>> 0; 
     if (typeof fun !== "function") throw new TypeError(); 

     var res = []; 
     var thisp = arguments[1]; 
     for (var i = 0; i < len; i++) { 
      if (i in t) { 
       var val = t[i]; // in case fun mutates this 
       if (fun.call(thisp, val, i, t)) res.push(val); 
      } 
     } 

     return res; 
    }; 
} 

을 또는 당신은 jQuery를 원하는 경우 의 $.map()[docs] 방법을 사용하십시오

var arr = $.map(objArray, function(v) { if(v.color === 'red') return v; }); 

또는 $.grep()[docs] 방법

var arr = $.grep(objArray, function(v) { return v.color === 'red'; }); 

예 :http://jsbin.com/udawir/edit#javascript,live어레이 위에