2013-06-14 5 views
1

내가 배열을 필터링하기 위해 노력하고있어 다른 배열로 다차원 배열을 필터 :하지 않은 (:는 다른 배열에서, 자바 스크립트

var json = [["ID1", "Person1", "10"], ["ID2", "Person2", "20.0"], ["ID3", "Person3", "50.0"], ["ID4", "Person4", "40.0"]]; 

내 필터 어레이 :

내가 첫 번째 배열이 주문 됨);

var filter = ["ID4", "ID1"]; 

내가하고 싶은 결과는 가지고 :

var json = [["ID1", "Person1", "10"], ["ID4", "Person4", "40.0"]]; 

또는

var json = [["ID4", "Person4", "40"], ["ID1", "Person1", "10.0"]]; 
+0

또는 그냥 평범한 옛 반복 -> http://jsfiddle.net/NWQJV/ – adeneo

답변

2

당신은

json = json.filter(function(v) { return filter.indexOf(v[0])!==-1 }) 

을 할 수하지만 명명 피하기 위해 당신을 권 해드립니다 json 변수가 보유하지 않음 JSON.

IE8과 호환되도록하려면 use a shim for filterindexOf을 추천하거나 단순히 2 for 루프를 사용하여 반복하는 것이 좋습니다.

+1

그것은 최신 브라우저를위한 최상의 솔루션이지만 IE8 이하에서는 지원되지 않습니다. +1하지만'json'과'filter'와 같은 변수 이름으로 이상하게 보입니다! – adeneo

+0

정말 고마워! IE8의 대안을 확인해 보겠습니다. 감사합니다. – Franck