javascript json array copy value not ref.

array 복사는 간단하게 slice로.
https://www.w3schools.com/jsref/jsref_slice_array.asp

let dataA = {
    label1: 'test1',
    label2: 'test2',
}

let dataB = dataA
dataB.label1 = 'test0'

위와 같이 했을 때 dataB는 레퍼런스 참조를 해서 dataA.label1도 test0으로 변경된다.
말 그대로 값만 복사해서 따로 데이터를 처리하고 싶을 때는 JSON을 이용한다.

let dataB = JSON.parse(JSON.stringify(dataA))
dataB.label1 = 'test0' // dataB.label1만 변경된다.

jquery trigger 호출 시 파라미터 넘기기

작업 중 피치못하게 페이지 로딩 시 데이터를 스크립트로 처리해야할 일이 생겼다.
기존 데이터가 있든 없든 가만 놔둬야하는데 이 데이터가 다른 데이터가 변경될 때 업데이트되는 기능이 있었고
그 다른 데이터도 로딩 시 업데이트가 되고 … ㅠㅠ
select2 플러그인을 사용중이었는데 값 변경 시 항상 trigger(“change”)를 호출해줘야했다.

기능 상 B 데이터가 변경될 때 A 데이터는 변경되야한다.
A 데이터는 페이지 로딩 시 변경되지 않아야하고
B 데이터는 페이지 로딩 시 변경된다.
그래서 change를 트리거할 때 파라미터를 넘겨줘서 구분하기로 했다.

역시 API 문서에 다 나와있다. 영어 공부 놓지않기!!

// 로딩 시 호출 
$("#B").val(로딩시설정데이터).trigger("change", [{변수명: 값}])

$("#B").on("change", function(e, data) {
	let 변수명 = data.변수명
	if( 변수명 === 값 ) {
		// A에 대한 스크립트
	}
});