1. 깊은 복사
얕은 복사는 원본 배열의 참조만 복사하므로 원본 배열 변경시 복사된 배열도 변경된다.
깊은 복사는 새로운 배열에 복사하기 위해 사용
https://developer.mozilla.org/ko/docs/Glossary/Deep_copy
// 얕은 복사
let arr = [1,2,3]
let arrCopy = arr
// Spread 연산자
const originalArray = [1, 2, 3];
const deepCopiedArray = [...originalArray];
// .slice()
const originalArray = [1, 2, 3];
const deepCopiedArray = originalArray.slice();
// .map()
const originalArray = [1, 2, 3];
const deepCopiedArray = originalArray.map(element => element);
2. .splice()
배열의 특정 요소를 변경할 때
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// Inserts at index 1
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// Replaces 1 element at index 4
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "May"]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
3. break
while, for, do-while문에서 조건에 만족했을 때 반복문 루프를을 종료할때
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/break
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // i가 5일 때 루프를 중단합니다.
}
console.log(i);
}
4. for...of
배열, 객체의 각 요소에 대해 반복할 때
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/for...of
const arr = [1, 2, 3, 4, 5];
arr.forEach((element) => {
console.log(element);
});
1
2
3
4
5
const arr = [1, 2, 3, 4, 5];
for (let element of arr) {
console.log(element);
}
1
2
3
4
5
// forEach와 달리 문자열, map, set 등에 모두 사용 가능하다.
const map = new Map();
map.set('name', 'John');
map.set('age', 30);
for (let [key, value] of map) {
console.log(`${key}: ${value}`);
}
name: John
age: 30
const str = 'hello';
for (let char of str) {
console.log(char);
}
h
e
l
l
o
5. 대/소문자 판별 (ASKII)
대/소문자 판별시 아스키 코드를 사용할 수 있다.
소문자 : 97 ~ 122
대문자 : 65 ~ 90
function countUpperCaseLowerCase(str) {
let upperCaseCount = 0;
let lowerCaseCount = 0;
for (let i = 0; i < str.length; i++) {
const charCode = str.charCodeAt(i);
if (charCode >= 65 && charCode <= 90) {
upperCaseCount++;
} else if (charCode >= 97 && charCode <= 122) {
lowerCaseCount++;
}
}
return { upperCaseCount, lowerCaseCount };
}
const inputString = "Hello World";
const counts = countUpperCaseLowerCase(inputString);
console.log("Number of uppercase letters:", counts.upperCaseCount);
console.log("Number of lowercase letters:", counts.lowerCaseCount);
Number of uppercase letters: 2
Number of lowercase letters: 8