profile
바꿀 수 있는 것에 주목하자
태그 목록
전체보기 (93)typescript(2)style name with emotionjs at nextjs(1).xcodeproj(1)homebrew path error(1)HtmlWebPackPlugin(1)baekjoon 1935(1)nProtect(1)there-is-no-spoon-episode-1(1)transform transition-x(1)SCM(1)VirtualizedLists error(1)redux(1)deep copy(1)utf(1)v-date-picker 2.6.x(1)align content(1)React-Native KaKao Login (Android)(1)react composition(1)android(1)running-on-device(1)hot-reloading(1)DOMContentLoaded(1)Resolving Shell Environment fails(1)git(1)Excel download(1)One-Time-Password(1)baekjoon 1929(1)private static member(1)react-native-keyboard-aware-scroll-view(1)You Don't Know JS(1)ScrollView(1)react-native android error(1)SheetJS(1)nextjs(1)adjustPan(1)scss :export(1)nextjs v.11(1)interceptors(1)react-native-naver-map(1)Webpack5(1)no-unsafe-assignment(1)chuck-norris(1)vue-router query(1)rn kakao login api error(1)compileDebugJavaWithJavac FAILED(1)extraReducer(1)dialogflow(1)ActionFacade error(1)vue lifecycle(1)소수 구하기(1)rn textinput(1)encodeURIComponent(1)_scrollToInput(1)tailwind sidebar(1)swr network error(1)nginx 502 Bad Gateway(1)align items(1)react-native-keyboard-manager(1)ts(2339)(1)Copy Bundle Resources(1)no-unsafe-call(1)reduxjs/toolkit(1)generator(1)유사배열(1)velog(1)firebase deploy(1)React(1)baekjoon 15990(1)rn kakao login sdk(1)PhaseScriptExecution(1)Spread Syntax(1)dynamic-import(1)DropDownPicker(1)vuejs instance(1)js Date timezone(1)mergeExtDexDebug(1)ZIndex(1)KeyboardAwareScrollView(1)Xcode(1)Array.prototype.slice()(1)byte(1)DropDownPicker undefined error(1)permalink(1)nextTick(1)next lint(1)android network error(1)useScrollFadeIn(1)excel upload(1)escape(1)Call By Value(1)ascii코드(1)UTC(1)JavaScript(1)reverse proxy(1)info.list(1)인코딩(1)Antd @primary-color(1)document.ready(1)RTK-query accessToken(1)TextInput auto focus(1)ESLint(1)Call By Reference(1).zprofile(1)refresh_token(1)nextjs custom font(1)유니코드(1)에라토스테네스의 체(1)next-plugin-antd-less(1)AUTHORIZATION_FAILED(1)github.io(1)useRef type error(1)객체의 복사(1)window.onload(1)redux-toolkit(1)후위 표기식2(1)gyp err(1)vue2(1)Array.push(1)Javascript pattern(1)MainApplication.java error(1).ttf file with nextjs(1)blog platform(1)Android 디버깅 (한글)(1)bcrypt(1)KeyboardAvoidingView(1)AsyncStorage error(1)Array.prototype.slice.call()(1)native-base Accordian error(1)encodeURI(1)cors error(1)rtk-query middleware(1)rn Dialogflow(1)defaultValue error(1)daum-postcode react-hooks(1)multiDexEnabled(1)CSS(1)Sass(1)baseQueryWithIntercept(1)html(1)markup(1)2차원 배열(1)white space(1)accesstoken(1)certbot renew(1)xcode Crash Report(1)rn props problem(1)css perspective(1)react-native-contacts(1)react-scroll-hooks(1).env undefined(1)android build error(1)chunksSortMode(1)epoch time(1)npm install error(1)VCBuild.exe(1)shallow copy(1)nextjs prerendering error(1)react native(1)webpack dev server(1)next font-optimization(1)react-native-daum-postcode(1)navigation custom header(1)code splitting(1)react-native-dropdown-picker(1)sudo rm -rf(1)react native navigation popToTop(1)slice(1)2진법 변환하기(1)get과 post api의 차이(1)smooth visibility(1)codingame(1)cocoapods error(1)ts(2559)(1)

객체의 복사, 불변성의 문제

1. issue 실무에서 다음 a와 같은 구조의 배열을 복사해서 안의 프로퍼티 값을 변경하니 a의 불변성이 지켜지지 않는 문제가 발생했다. > const a = [ { first: 1, second: 2, third: 3 }, { first: 4, second: 5, third: 6 }, { first: 7, second: 8, third: 9 }, ]; 1) 전개구문(spread syntax) 배열 a를 전개 구문으로 복사한 b를 map을 이용해 안의 객체 first의 값을 바꿔보자. 그러면 a의 값 또한 변하면서 불변성이 지켜지지 않는다. 전개구문은 다음과 같은 특성이 있기 때문이다. > Spread 문법은 배열을 복사할 때 1 레벨 깊이에서 효과적으로 동작합니다. 그러므로, 다음 예제와 같이 다차원 배열을 복사하는것에는 적합하지 않을 수 있습니다. 2) Array.prototype.slice() Array.prototype.

2021년 10월 25일
·
0개의 댓글
·