사용법
서로 다른 배열을 비교하여 교집합(중복), 차집합(한쪽에만 존재), 대칭차집합(교집합 외)인 요소를 구하는 방법.
<script>
const arr1 = ['1','2','3','4'];
const arr2 = ['3','4','5','6'];
// 교집합
console.log( arr1.filter(x => arr2.includes(x)) );
// ['3', '4']
// 차집합
console.log( arr1.filter(x => !arr2.includes(x)) );
// ['1', '2']
// 대칭차집합
console.log( arr1.filter(x => !arr2.includes(x)).concat(arr2.filter(x => !arr1.includes(x))) );
// ['1', '2', '5', '6']
</script>
사용 예
{ "goodsNo" : [ "462", "727", "724", "1556" ] }
위 파일로부터 표시할 엘리먼트 리스트(id)를 받아와서, 대상이 아닌 엘리먼트는 제거한다.
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(document).ready(function() {
$.get("goods_active.html", function(data) {
const obj = JSON.parse(data);
let goodsDisplayed = new Array();
$(".timeSaleGoods").each( (idx, el) => goodsDisplayed.push( $(el).attr("id") ) );
let goodsExpired = goodsDisplayed.filter(x => !obj['goodsNo'].includes(x));
goodsExpired.forEach( el => $("#" + el).remove() );
});
})
</script>
<ul>
<li class="timeSaleGoods" id="18">18</li>
<li class="timeSaleGoods" id="366">366</li>
<li class="timeSaleGoods" id="462">462</li>
<li class="timeSaleGoods" id="727">727</li>
<li class="timeSaleGoods" id="724">724</li>
<li class="timeSaleGoods" id="1556">1556</li>
</ul>
메서드
'코딩 > JavaScript & jQuery' 카테고리의 다른 글
multiselect.js 데이터 처리 (0) | 2024.08.21 |
---|---|
[JAVASCRIPT] 날짜 계산 (어제, 내일, 일주일 전, 한달 전...) (0) | 2023.02.10 |
[JAVASCRIPT] 오브젝트 변수 다루는 법 정리 (0) | 2023.02.08 |
highlights.js 라인넘버 특정 코드(언어)에는 적용하지 않기 (0) | 2022.08.10 |
jQuery - fadeIn() (0) | 2022.07.26 |