JavaScript

JavaScript* 배열 quiz 2

해보구 2024. 3. 26. 09:04

Quiz 1

/*
- Quiz.
아래 요구사항에 맞는 코드를 작성하고
브라우저에서 실행하여 테스트하세요.
- 요구사항
1. 변수에 배열 ['유노윤호', '최강창민', '영웅재중', '믹키유천', '시아준수']을 저장하세요.
2. 사용자에게 삭제할 멤버 이름을 입력받고 해당 멤버를 배열에서 삭제시킨 뒤 삭제 완료 후의 배열을 출력해서 보여주세요.
3. 배열에 없는 이름을 입력하면 'xxx는 잘못된 이름입니다.'라고 출력한 후 다시 삭제할 이름을 입력할 수 있도록 하세요.
4. 전체멤버를 정확하게 삭제할때까지 프로그램은 계속되어야 합니다.
*/

 

 

나의 코드 (수정 전)

// 멤버 이름
// var tvxq = ['유노윤호', '최강창민', '영웅재중', '믹키유천', '시아준수'];

// 삭제할 멤버 이름 입력받기
// var memberName = prompt('삭제할 멤버의 이름을 쓰세요');
// var index = tvxq.indexOf(memberName);

// 멤버 삭제하기
// var removeMember = tvxq.includes(memberName);
// if (removeMember === true) {
//   tvxq.splice(index, 1);
// } else {
//   alert(`${memberName}은 잘못된 이름입니다`);
// }

// while (tvxq.length > 0) 로 묶어서 따로 if문 없이 종료 가능

// while(true) {
//   if (tvxq.length === 0) {
//     alert('모두 삭제 되었습니다');
//     break;
//     } else {
//     var memberName = prompt('삭제할 멤버의 이름을 쓰세요');
//     var index = tvxq.indexOf(memberName);
//     var removeMember = tvxq.includes(memberName);

//   tvxq.includes(memberName)를  if 괄호안에 그냥 넣어서 불필요한 위 코드와 아래 괄호 안 코드를 삭제 할 수 있다.

//       if (removeMember === true) {
//         tvxq.splice(index, 1);
//         alert(tvxq);
//         continue;
//         } else if (memberName !== tvxq) {
//           alert(`${memberName}은 잘못된 이름입니다`);
//           continue;
//         }
//       }
// }  /// continue 굳이 필요 없음.

 

 

나의 코드 (수정 후)

var tvxq = ['유노윤호', '최강창민', '영웅재중', '믹키유천', '시아준수'];

while (tvxq.length > 0) {
  var deleteName = prompt("삭제할 멤버의 이름을 쓰세요");
  var index = tvxq.indexOf(deleteName);
  if (tvxq.includes(deleteName)) {
    tvxq.splice(index, 1);
    alert(`남은 멤버: ${tvxq}`);
  } else if (deleteName !== tvxq) {
    alert(`${deleteName}은 잘못된 이름입니다`);
  }
} alert('모든 멤버가 삭제되었습니다');

 

코드는 가능한 불필요한 코드를 삭제해주고 가장 중요한 것은 논리를 잘 쪼개서 보는 사람이 보기 편해야 한다는 것이다.

불필요한 continue를 삭제하고 굳이 중복되는 코드를 삭제해주었다. 단계적으로 나누는 방식이 보다 목표점에 가는데까지 수월한 것 같다.