제코베 JS 100) 배열 다루기
JS 공부를 하면서 제주 코딩 베이스에서 JS 문제 100개를 무료배포하고 있는 것을 발견했다.
쉬운 문제도 있지만 잘 기억나지 않았던 내장함수 등을 다시 짚어보면서 공부할 수 있는 계기가 됐다.
그중 공부했던 부분을 정리.
1. 배열삭제
let nums = [100, 200, 300, 400, 500];
nums.splice(-2, 2);
console.log(nums);
마지막 한 개를 삭제할 때는 pop()이 제일 간편하지만, 여러 개를 삭제해야 할 때는 splice를 사용할 수 있다.
array.splice(num1, num2);
첫 번째 인자: 삭제를 시작할 인덱스
두 번째 인자 : 삭제할 개수
인덱스 0 은 첫 번째 원소를 말하고, -1은 맨 마지막 원소를 말한다. 마지막에서 두 번째는 -2
따라서 마지막에서 두 번째 자리에서 2 개를 삭제하고 싶을 때는 splice.(-2,2)라고 써야 한다.
array.splice(num1, num2, 원소);
splice는 필름을 이어 붙이다라는 뜻인 만큼, 원소 중간에 새로운 값을 끼워넣을 수 있다.
예컨대 nums.splice(0, 3, 600)을 할 경우, 첫 번째 원소로부터 3개의 값을 삭제하고, 그 자리에 600의 값을 끼워넣는다는 의미. 따라서 [600, 400, 500]을 리턴한다. 원소 자리에는 여러 개의 값을 넣을 수 있다.
splice(0, 3, 1,2,3,4);
=> return [1, 2, 3, 4, 400 ,500]
2. JS의 true와 false
JavaScript 에서는 null, undefined, 0, 빈 문자열, NaN, false 를 제외하고는 모두 참인 값으로 평가한다.
3. JS의 식별자
JavaScript 식별자는 문자, 밑줄(_) 혹은 달러 기호($)로 시작해야 한다.
4. ARRAY와 STRING 다루기
문제 16. 문장이 입력되면 거꾸로 출력하는 프로그램을 만들어 봅시다.
//함수 선언 param: string
// return : 없음
const upsideDown = function (param) {
let array = param.split("");
console.log(array.reverse().join(""));
};
upsideDown("거꾸로");
- split('') : split 괄호 안에 있는 것을 기준으로 string을 잘라 배열의 각 원소로 지정하고, 그 배열을 반환한다.
let sentense = 'I'm awesome okdol';
let array = sentense.split(' ');
console.log(array); //[I'm, awesome, okdol];
- array.reverse() : 배열의 정렬을 거꾸로 한다
- array.join('') : 배열의 원소를 붙여 string으로 반환
5. 숫자 다루기
문제 17. 공백으로 구분하여 세 과목의 점수가 주어지면 전체 평균 점수를 구하는 프로그램을 작성하세요. 단, 소숫점 자리는 모두 버립니다.
let score = "20 30 40";
const average = function (score) {
let array = score.split(" ");
let total = 0;
for (let i = 0; i < array.length; i++) {
total += parseInt(array[i], 10);
}
return Math.floor(total / array.length);
};
console.log(average(score));
String을 숫자로 변환해줄 때, parseInt(숫자, 10) 해주기! 10진수를 의미한다.
Math.floor(숫자) : 버림. 바닥까지 버린다
Math.ceil(숫자) : 올림. 천장까지 올린다
Math.round(숫자) : 반올림
6. 대문자, 소문자
문제 24. 민지를 위해 이름이 입력되면 전부 대문자로 출력되는 프로그램을 만들어주세요.
대문자로 : string.toUpperCase()
소문자로 : string.toLowerCase()
const upper = function (param) {
console.log(param.toUpperCase());
};
//upper("mary");
오늘의 짤