지영이의 개발 블로그

[코딩테스트]오타 수정하기 본문

코딩/코딩테스트

[코딩테스트]오타 수정하기

이지영 2022. 7. 26. 12:43

문제

Q. key값 마지막 부분에 오타를 섞여 놨습니다.

key값 마지막에 한자릿수 숫자가 섞여있으면 그걸 다 제거하고 싶습니다. 

어떻게 코드를 짜면 될까요? 

(예시)

array안의 object안에 들어있는 

name1 : 'chair' 이게

name : 'chair' 이렇게 숫자만 깔끔하게 없어져야합니다.

 

var products = [
  {
    name1 : 'chair',
    price1 : 7000,
  },
  {
    name2 : 'sofa',
    price : 5000,
  },
  {
    name1 : 'desk',
    price3 : 9000,
  },
];

<Solution>

for (let item of products) {
  for (let key in item) {
     if (isNaN(parseInt(key.slice(-1))) == false ) {
       let newValue = item[key];
       let newKey = key.slice(0, -1); 
       item[newKey] = newValue;
       delete item[key]; 
     }
  }
}

console.log(products)

1.isNaN(parseInt('123'))  을 사용하여 key 값의 마지막 글자를 확인해 숫자인지 확인해 준다

2. 그게 숫자면 newValue에 새로운 key값을 만들어준다

3. newKey는 맨 뒷 문자를 제거해줍니다.

4. 기존 오브젝트에 { newKey : newValue } 데이터를 추가해줍니다. 

4. 마지막으로 delete 키워드 쓰면 object에 있던 property 지울 수 있습니다. 

Comments