이번의 회고..
늦었지만 천천히 회보고해보고자 블로깅을 해보고자한다.
const original = {
name: '김코딩',
company: {
name: 'Unemployed',
skill: ['Development', 'Writing'],
role: {
name: 'Software Engineer'
}
},
age: 35
}
const getChanged = () => {
let role = {name : 'Software Engineer'}
let company = {name : "Code States" , skill : ['Development','Writing'], role}
let rest = {company ,name :'김코딩'}
return {age :35,...rest}
}
module.exports = {
original,
getChanged
}
내 코드는 이렇다. 나는 spread/rest 가 통과가 되질 않았다. 사실 값은 원하는 값으로 나오긴했는데.. 다시 읽어보니 spread/rest를 이용하긴했는데 original 객체를 이용하질 않았다. 당시에 나도 이용할려고했으나, 일단은 값을 변경을 해야했기에, ( name: '김코딩' 보다 age : 35가 먼저나왔어야했다.)
순서를 바꾸고 접근, 그리고 original.company에 'Code states'를 name의 밸류값으로 넣었는데 엉뚱하게 작동하여 궁리끝에 위와같이 작성하였으나 오류였다..
결과는 다음과같다.
const original = {
name: '김코딩',
company: {
name: 'Unemployed',
skill: ['Development', 'Writing'],
role: {
name: 'Software Engineer'
}
},
age: 35
}
const getChanged = () => {
return {
...original,
company: {
...original.company,
name: 'Code States'
}
}
}
이렇게 보다시피 볼땐
내 코드완 다르게 순서는 안바뀌었다
{age : 35, .., name : '김코딩'} 이 아닌
{name : '김코딩', ..., age : 35} 으로 되어있다.. 나도 최초에 저렇게 생각은 들었으나
여기서 찍혀봤을때 전혀 그런생각을 못들었다 그래서 내가 위의 풀이법을 썼던 1차적인 이유다.
두번째는 바로
original.company 이다. 콘솔창에서 original.company를 입력하면 name외에 company 객체 값 모두가 쭈욱 나열되어 나타난다. 그래서 나는 이값을 천천히 접근하고싶어서
original.company.name 으로 접근하였다. 그리고 그상태에서 'Code state'로 바꿀수있음을 확인하고 위와같은 내 풀이법대로 따로 선언하고 만들어줬다. 하지만 original객체를 쓰질않아 틀린답이되었다.
그리고 아무리뒤져봐도 이제 알게된 사실은 ,
...original, company,
이 말은 company객체를 접근한다는 것이고 거기 안에있는 name 객체에접근하여 '원하는 값'을 수정할 수 있다는 점이다. 음 확실히 생가각해보니.. spread/rest로 한번 값을 펼쳐주고 그안에있는 또다른 객체를 객체형태로 입력해주고,
그 객체 내부또한 'spread'해주는데.. 그중 한부분에 접근해서 '원하는값' 으로 바꾼다...
사실 여러군대 전개함수에대찾아봤지만 결국 그 케이스를 찾을순 없었다..
이렇게 바꿀 수 있음을 확인하였다.
Author And Source
이 문제에 관하여(이번의 회고..), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@corepen_/이번의-회고저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)