[array]
리턴하는 함수들: split,map, join(문자열 리턴)
- .some(v => v==7) : true/false 리턴
- .find(v => v > 7) :첫번째 만족하는 값 반환. 없으면 undefined 반환
- .findIndex(... ) : 첫번째로 만족하는 index반환. 없으면 -1 반환
예제:
const toCamelCase = (templCode) => {
return templCode
.toLowerCase() // 전체를 소문자로 변환
.split('_') // "_" 기준으로 분할
.map((word, index) =>
index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1) // 첫 단어는 소문자 유지, 이후 단어는 첫 글자만 대문자
)
.join(''); // 배열을 문자열로 합침
}
특이함수: slice - 문자열/array 모두 동작.
const str = "JavaScript";
console.log(str.slice(5)); // "cript" (start만 입력하면 끝까지)
console.log(str.slice(0, 4)); // "Java"
console.log(str.slice(-6, -3)); // "Scr" (음수 인덱스 사용 가능)
- slice와 splice 차이점
( 원본 배열 변경 여부, 반환값, 주요 용도 로 비교)
.splice() | ✅ 원본 배열을 변경함 | 삭제된 요소를 배열로 반환 | 요소 추가, 삭제, 교체 |
.slice() | ❌ 원본 배열을 변경하지 않음 | 새로운 배열 반환 | 배열의 일부 복사 |
[splice 사용예제]
const index = users.findIndex(user => user.id === 2);
if (index !== -1) {
users.splice(index, 1); // 삭제
}
[Object]:json
let obj = {a:1, b:2, c:3};
- Object.keys(obj) => array리턴
- Object.values(obj) => array리턴
- let newObj = Object.assign(obj); //딥 카피. 자식이 array/obj일 경우는 잘안될 수도 있으므로,
- let newObj = JSON.parse(JSON.stringify(obj));
[Set]
let mySet = new Set([1,2]);
let newSet = mySet.add(5); //[1,2,5]; 리턴하는 함수, mySet자체도 바꿈.
mySet.delete(2); //[1,5]; //리턴없는 함수
- array의 각종 좋은 함수들을 사용하기 위해 Set->array로 변환필요한 경우 많음
const mySet = new Set([1, 2, 3, 4, 5]);
const arr = Array.from(mySet);
console.log(arr); // [1, 2, 3, 4, 5]
[String] javascript도 java처럼 immutable이라서,
- .replace( , ) : 원본은 변경하지 않음