728x90
반응형
처음 작성한 코드
if(!this.checkList.includes({ crCd : crCd, itemCd : itemCd, seq : seq})){
this.checkList.push({ crCd : crCd, itemCd : itemCd, seq : seq});
}
JavaScript의 includes() 메서드는 주어진 요소가 배열에 포함되어 있는지를 확인합니다. 그러나 여기서 문제가 발생하는 이유는 includes() 메서드가 객체의 비교를 수행할 때 참조에 따라 동작하기 때문입니다. 객체가 동일한 참조를 가질 때에만 includes()는 해당 객체를 찾을 수 있습니다.
따라서 { crCd : crCd, itemCd : itemCd, seq : seq}와 같은 새로운 객체를 includes()로 찾을 수 없습니다. 대신에 객체가 동일한 속성 값을 갖고 있는지 확인해야 합니다.
다음과 같이 수정할 수 있습니다.
if(!this.checkList.some(item => item.crCd === crCd && item.itemCd === itemCd && item.seq === seq)) {
this.checkList.push({ crCd : crCd, itemCd : itemCd, seq : seq});
}
728x90
반응형
'Front > JS & jQuery' 카테고리의 다른 글
[js] json 배열에 filter() 사용하기 (0) | 2024.04.09 |
---|---|
[js] some() (0) | 2024.04.07 |
[jquery][datatables] 페이지 이동 이벤트 처리 (0) | 2024.04.05 |
[js] json 배열 비교하기 (0) | 2024.04.04 |
[jquery][datatavles] $.fn.dataTable.render.number() (0) | 2024.04.01 |