자라는 개발자/시행착오들

ajax 로 불러온 리스트 두개를 매치시켜서 원하는 값(해당 리스트) 제거하기

자란다 2020. 12. 2. 16:58
728x90
반응형

https://bbaktaeho-95.tistory.com/32

 

[Javascript] forEach, some, for in, for of (자바스크립트, 반복, 배열 반복, 프로토타입, prototype, 객체 반복

📚 forEach, some, for in, for of 자바스크립트의 반복을 해주는 함수 또는 문법 배열을 반복하며 원하는 로직을 수행 📗 forEach 배열의 모든 요소를 반복하며 콜백 함수를 실행 기본 for 문에서의 break

bbaktaeho-95.tistory.com

https://sansanji.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%B0%B0%EC%97%B4-%ED%8A%B9%EC%A0%95-%EC%9A%94%EC%86%8C-%EC%82%AD%EC%A0%9C-javascript-array-delete-object

 

자바스크립트 배열 특정 요소 삭제 javascript array delete object

지우고 싶은 원소의 인덱스를 찾아서 splice 함수를 통해서 지운다. let a = [1, 2, 3, 4]; const idx = a.indexOf(3); a.splice(idx, 1); 이렇게 지우면 a에는 [1, 2, 4]만 남게 된다. object를 담는 array에서..

sansanji.tistory.com

위의 링크 두개를 참고했다.

 

ajax 로 불러온 리스트 두개를 매치시켜서 원하는 값(해당 리스트) 제거하기

 

그리드 두개를 그릴 때 A그리드에는 a데이터, B그리드에는 b 데이터로 그렸다.

완성해놓고 보니 A그리드에 나오지 않아야할 데이터가 나오고 있었고, "a데이터 -b데이터" 를 그려줘야했다.

단순히 forEach를 돌려 해결하려 했는데 생각보다 길어지고 난잡해지는 감이 없지않아서 구글링을 해서 찾았다.

 

-자바스크립트 배열 특정 요소 삭제 하기

우선 해당 jsp의 제일 위에 

var exceptList = [];

선언해 준뒤,  B그리드 그려주는 로직에서 

schema: {
		 		 			data: function(response) {
		 		 				exceptList = response.list;
		 		 				 return response.list;
		 		 			},
		 		 		 }

할당을 했다.

 

 

그후, A그리드 그려주는 로직에서 다음과 같은 작업을 했다. 

schema: {
		data: function(response) {
		 		let a = response.list;
		 		exceptList.forEach(function(v){
		 		const idx = a.findIndex(function(item){return item.dept_name == v.dept_name});
		 		 a.splice(idx,1);	
		 		 })
		 		 	return a;
		 		},
		 	}

 

 

a데이터를 let a에 할당해준뒤

앞에서 선언하고, B그리드에서 할당해준exceptList 를 forEach로 돌려서 부서명이 같을때 idx 에 할당 해준다.

그리고 splice를 사용해서 a 에서 해당 인덱스를 지운다.

 

그리고a를 리턴해서 그리드를 그려준다. 


 해놓고 나서보니 처음부터 db에서 다르게 가져오면 되었겠다 싶어서 바꿧다... 쿼리를..

728x90
반응형