2014-05-22 5 views
-1

나는JSON 시작 값에서 값을 가져 오는 방법은?

[ 
{ 
    "text": "Acute Myelocytic Leukemia" 
}, 
{ 
    "text": "Acute Myeloid Leukemia, Adult" 
}, 

{ 
    "text": "Dengue Fever" 
}, 
{ 
    "text": "Diphtheria" 
}, 
{ 
    "text": "Familial Cold Autoinflammatory Syndrome" 
}, 
{ 
    "text": "Familial Mediterranean Fever" 
}, 

] 

같은 JSON이 지금은 'A'또는 'B'..... 'Z'로 시작하는 텍스트를 먹고 싶어합니다.

(급성 골수 구성 백혈병, 급성 골수성 백혈병, 성인)

처럼 결과는 어떻게하면 자바 스크립트 또는 JQuery와이 결과를 얻을 수 있습니다.

도와주세요. 미리 감사드립니다.

+0

배열에 대한 루프로 비교 함수를 적용하는 것이 여기에서 가장 먼저 떠오르는 사항입니다 (정확히 Array.filter의 기능). 지금까지 뭐 해봤 어? – mabi

답변

0

당신은 $.grep() 사용할 수 있습니다

var matches = $.grep(data, function(item, idx) { 
    return item.text.toLowerCase().indexOf('a') == 0; 
}); 
1

를 일반 자바 스크립트에서?

function iterate() { 
    var data = [ 
     {"text": "Acute Myelocytic Leukemia"}, 
     {"text": "Acute Myeloid Leukemia, Adult"}, 
     {"text": "Dengue Fever"}, 
     {"text": "Diphtheria" }, 
     {"text": "Familial Cold Autoinflammatory Syndrome" }, 
     {"text": "Familial Mediterranean Fever" } 
    ]; 

    for (var i = data.length - 1; i >= 0; i--) { 
     if (data[i].text.indexOf('A') == 0) { 
      // do whatever; 
     } 
    }; 
} 

편집 :이 같은 시도 다른 답변에서 찾고 - 당신이 JQuery와 귀하의 사이트에 포함이있는 경우, 더 나은 옵션은 그들에게 듣고 $ .grep을 사용하는 것입니다. 나는 다른 대답이 내 것이 더 나을 때마다 항상 기분이 좋지만, 중요한 것은 우리 모두가 배우고 나아질 수 있다는 것입니다. ;)

0

를 JQuery와 옵션 Jsfiddle 경우 :

$.grep([ 
{ 
"text": "Acute Myelocytic Leukemia" 
}, 
{ 
"text": "Acute Myeloid Leukemia, Adult" 
}, 

{ 
"text": "Dengue Fever" 
}, 
{ 
"text": "Diphtheria" 
}, 
{ 
"text": "Familial Cold Autoinflammatory Syndrome" 
}, 
{ 
"text": "Familial Mediterranean Fever" 
} 

],function(item){return item.text[0] == 'A'}); 
0

아마도 첫 번째 문자를 substr로 확인한 다음 regexp로 테스트할까요?

var matchedResults = []; 
for (i = 0; i < json.length; i++) { 
    var index = json[i].text; 
    var reg = /^[A-Za-z]+$/; 
    var first = index.substr(0, 1).toLowerCase(); 
    if (reg.test(first)) { 
    matchedResults[i] = index; 
    } 
} 

바이올린 : 당신이 편지 (A-Z, A-Z)

당신이 변수 이름 '코코'에 개체 만 담당 가정으로 시작하는 모든 요소를 ​​얻고 싶은 것 http://jsfiddle.net/X6u6k/1/

0

. 다음 시도 : 문자로 시작하는 속성 문자 만 요소를 가지고 정규 표현식을 사용 (/^[A-ZA-Z] /)

for(var i=0;i < koko.length; i++) { 
     if (koko[i].text.match(/^[a-zA-Z]/)) 
      { 
       console.log(koko[i].text); 
      } 
} 

일치.

+1

@G Z : 혼란 스러움을 이해하지만 문자가 아닌 특정 문자 ("A")로만 시작하는 값을 찾으려고했습니다. – blex

+0

그럴 경우 내 코드가 좋지 않습니다. –

+0

처음 질문을 읽을 때와 똑같이 생각했습니다. 그런 다음 예제 출력 ("A"로 시작하는 텍스트 만 있음)을 살펴 보았습니다. – blex