2017-03-29 7 views
0

다음 배열에서 각 'hire_address'값을 추출하여 별도의 배열에 추가 할 수 있기를 기대합니다.배열의 각 특정 값을 얻는 방법은 무엇입니까?

var addr = 
{ 
    "status":"success", 
    "data":[ 
     { 
     "start":"2017-01-26 12:30:00", 
     "hire_oucu":"ac2", 
     "hire_address":"Glasgow", 
     "offer_oucu":"ac1", 
     "offer_address":"Glasgow" 
     }, 
     { 
     "start":"2017-01-26 12:30:00", 
     "hire_oucu":"ac2", 
     "hire_address":"Poole", 
     "offer_oucu":"ac1", 
     "offer_address":"Poole" 
     } 
     { 
     "start":"2017-01-26 12:30:00", 
     "hire_oucu":"ac2", 
     "hire_address":"Hastings", 
     "offer_oucu":"ac1", 
     "offer_address":"Hastings" 
     } 
     { 
     "start":"2017-01-26 12:30:00", 
     "hire_oucu":"ac2", 
     "hire_address":"London", 
     "offer_oucu":"ac1", 
     "offer_address":"London" 
     } 
    ] 
}; 

나는 현재

var addresses = []; 
$.each(addr.data.hire_address, function (index, value) { 
addresses.push(value); 

그러나 운을 가지고 있지 있습니다. 어떤 제안?

답장을 보내 주셔서 감사합니다.

는 지금

var addresses = []; 
$.each(addr, function (index, value) { 
    if (value == "data"){ 
     addresses.push(value.hire_address); 
    } 
} 
); 

을 가지고 있지만 그것을 얻이 수없는 것. if 성명서가 필요합니까? 첫 번째 항목이 '상태'이고이 항목이 없기 때문에 'hire_address'속성을 추가하려고하면 오류가 발생하기 때문에이 항목을 추가했습니다.

+0

당신이 생각하는 당신은 몇 쉼표를 놓치고있어? 첫 번째 내부 객체 다음에는 나머지 사이에 쉼표가 없습니다. – Manngo

답변

0

$. 두 매개 변수를 취합니다. 첫 번째 매개 변수는 배열입니다. 루프하려는 배열을 전달해야합니다.

두 번째 매개 변수는 배열의 항목 당 호출을 가져 오는 함수입니다. value 매개 변수에 저장됩니다. 당신이 배열을 통해 반복하는 경우에는과 같이 올바른 속성에 액세스 할 수 있습니다 :

value.hire_address 

http://api.jquery.com/jquery.each/

0

사용 Array.map을

addr.data.map(d => d.hire_address) 
0

당신은 그것을 사용 할 수 Array#map()

var addr = { 
 
    "status": "success", 
 
    "data": [{ 
 
     "start": "2017-01-26 12:30:00", 
 
     "hire_oucu": "ac2", 
 
     "hire_address": "Glasgow", 
 
     "offer_oucu": "ac1", 
 
     "offer_address": "Glasgow" 
 
    }, 
 
    { 
 
     "start": "2017-01-26 12:30:00", 
 
     "hire_oucu": "ac2", 
 
     "hire_address": "Poole", 
 
     "offer_oucu": "ac1", 
 
     "offer_address": "Poole" 
 
    }, { 
 
     "start": "2017-01-26 12:30:00", 
 
     "hire_oucu": "ac2", 
 
     "hire_address": "Hastings", 
 
     "offer_oucu": "ac1", 
 
     "offer_address": "Hastings" 
 
    }, { 
 
     "start": "2017-01-26 12:30:00", 
 
     "hire_oucu": "ac2", 
 
     "hire_address": "London", 
 
     "offer_oucu": "ac1", 
 
     "offer_address": "London" 
 
    } 
 
    ] 
 
}; 
 

 
let myArray = addr.data.map(d => d["hire_address"]); 
 
console.log(myArray);

0

당신이 (내 의견을 참조) 개체를 수정 한 후에는 jQuery를하지 않고 단순히 반복 할 수

var addresses=[]; 
addr.data.forEach(function(a){ 
    addresses.push(a.hire_address); 
}); 
alert(addresses); 

자바 스크립트 .forEach() 배열 방법은 오버 헤드없이 jQuery의 .each() 비슷한 일을한다.

는 다른 방법으로, 이전 버전의 브라우저를 위해 :

for(var i=0;i<addr.data.length;i++) 
    addresses.push(addr.data[i].hire_address); 
관련 문제