< 주의할 사항들 >
- falsy한 값들
- '', 0 , false, null, undefined,Nan
- ex) Boolean(falsy) // false
- for...of 와 for...in 차이
- for...of : 배열 반복
- for...in : 객체 반복
- 정규 표현식
- https://curryyou.tistory.com/234
- +=연산자
x = y // x = y
x += y // x = x + y
x -= y // x = x - y
x *= y // x = x * y
x **= y // x = x ** y
x /= y // x = x / y
x %= y // x = x % y
< charAt >
- string.charAt(index)
- 문자열에서 해당 인덱스의 문자열 반환
< every >
- 배열 속의 모든 요소들이 주어진 함수를 통과 하는지 확인
- false에 해당하는 요소를 만나면 false 리턴 후 함수 종료
- ex)
const isBelowThreshold = (currentValue) => currentValue < 40; const array1 = [1, 30, 39, 29, 10, 13]; console.log(array1.every(isBelowThreshold)); // expected output: true
< filter >
- 배열 반환
- 교집합
arr1.filter(x => arr2.includes(x))- 차집합
arr1.filter(x => !arr2.includes(x))
< find >
- 주어진 판별함수를 만족하는 배열 속의 첫번째 요소의 값을 반환!
인덱스나 위치를 찾을 때는 findIndes, indexOf 사용
요소의 존재 유무 판단은 indexOf, includes 사용- 통과하는 요소를 만나면 값을 리턴 후 함수 종료
< flat >
- Array.flat()
- 다차원 배열을 1차원 배열로 만듬
< forEach >
- array.forEach()
- 각 요소를 오름차순 순으로 불러서 괄호안에 함수에 대입
- array의 요소 중 빈값이 있을 경우 괄호안의 함수를 실행하지 않고 넘어감
< includes >
- array.includes(값)
- true, false 반환
< indexOf >
- array.indexOf(값)
- 찾는 값의 첫번째 원소의 index 반환, 없을 경우 -1 리턴
< isSafeInteger >
- Number.isSafeInteger()
- 괄호안의 값이 안정한 정수인지 판별하여 true, false 값을 리턴하는 Boolean
< join >
- array.join()
- 배열 안의 모든 요소를 연결해 문자열로 반환
- 빈값을 입력하면 요소 사이에 ","를 입력
- '' 값을 입력하면 요소를 모두 붙여서 입력
< map >
- result = 배열.map((요소, 인덱스, 배열) => {return 요소});
- 기존배열을 수정하지않고, 새로운 배열을 생성(result === 배열 /// false). 단, 배열 속의 객체는 공유
- ex)
const a = [1,2,3] let result = a.map((v) => { return v+1;}); result; //[2,3,4]
< match >
- string.match()
- 단어뿐만아니라 정규 표현식도 가능
- 일치하는 패턴을 새로운 배열로 생성
- ex)
var test = 'love you. love me. love everything!' var regExp = /love/gi; test2 = test.match(regExp); ['love', 'love', 'love']
< new Date >
- new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds)
- 변수를 비우면 생성 순간 반영
- 문자열로 반환
< parseInt >
- parseInt(string, radix)
< reduce >
- result = 배열.reduce((누적값, 현재값, 인덱스, 요소) => { return 결과}, 초기값);
- return 값을 누적값으로 저장
- reduceRight은 요소 순회를 오른쪽에서 부터
- ex)
result = a.reduce((acc, cur) => { acc.push(cur % 2 ? '홀수' : '짝수'); return acc; }, []); result; // ['홀수', '짝수', '홀수'] result = a.reduce((acc, cur) => { if (cur % 2) acc.push(cur); return acc; }, []); result; // [1, 3]
< replace >
- string.replace()
- 일치하는 일부 또는 모든 부분 교체
- 정규식 객체 또는 리터럴은 모두 교체
- 모든 문자열에 대해 바꾸려면 g플래그 포함 필요
- ex)
let str = 'apple, banana, orange, banana';
let replaced_str = str.replace(/banana/g, 'tomato');- 글자그대로의 문자열은 첫번째만 교체
- 패턴 정규식 가능!
- 기존 문자열 유지, 새로운 문자열 생성
- 문자열에서 숫자만 추출
ex) str.replace(/[a-z]/gi,"");- 문자열에서 문자만 추출
ex) str.replace(/[1-9]/g,"")
< reverse >
- array.reverse()
- 기존배열의 순서를 뒤집음
< Set >
- set 객체는 자료형에 관계없이 원시값과 객체 참조 모두 유일한 값을 저장. 즉, Set 객체 내에는 중복되는 값이 없음
- Set.size : 개체의 값 수를 반환
- Set.add(value) : 개체에 value 추가,이미 있는 값이면 반환
- Set.celar() : 모든 요소 제거
- Set.delete(value) : value를 삭제하고 삭제 되었으면 boolean 값으로 true, 삭제되지 않았으면 false 반환
- Set.has(value) : 값의 유무 판단, boolean 값
- ex)
ex) 배열 합집함 arr = [...new Set([...arrA, ...arrB])]; 중복값 제거 const newArr = Array.from(new Set(arr)); ex) var mySet = new Set();<br/> mySet.add(1); // Set { 1 } mySet.add(5); // Set { 1, 5 } mySet.add(5); // Set { 1, 5 } mySet.add('some text'); // Set { 1, 5, 'some text' } var o = {a: 1, b: 2}; mySet.add(o); mySet.add({a: 1, b: 2}); // o와 다른 객체를 참조하므로 괜찮음 mySet.has(1); // true mySet.has(3); // false, 3은 set에 추가되지 않았음 mySet.has(5); // true mySet.has(Math.sqrt(25)); // true mySet.has('Some Text'.toLowerCase()); // true mySet.has(o); // true mySet.size; // 5 mySet.delete(5); // set에서 5를 제거함 mySet.has(5); // false, 5가 제거되었음 mySet.size; // 4, 방금 값을 하나 제거했음 console.log(mySet);// Set {1, "some text", Object {a: 1, b: 2}, Object {a: 1, b: 2}} let myArray = ['value1', 'value2', 'value3']; // Array를 Set으로 변환하기 위해서는 정규 Set 생성자 사용 var mySet = new Set(myArray); mySet.has('value1'); // true 반환 // set을 Array로 변환하기 위해 전개 연산자 사용함. console.log([...mySet]); // myArray와 정확히 같은 배열을 보여줌
< slice >
- arr.slice(begin, end)
- 배열의 시작점부터 마지막 앞 값까지 추출(end 포함X)
- end가 없으면 마지막 까지 추출
- '-i'뒤에서 i번째 문자를 지칭
< some >
- 배열 속의 요소들 중 하나라도 주어진 함수를 통과하면 true
- ture에 해당하는 요소를 만나면 리턴 후 함수 종료
- ex)
const array = [1, 2, 3, 4, 5]; // checks whether an element is even const even = (element) => element % 2 === 0; console.log(array.some(even)); // expected output: true
< sort >
- arr.sort()
- 기존 배열을 바꿈
- 함수 값을 생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니코드 포인트 값에 따라 정렬(소문자 다음 대문자 순으로 정렬
- 오름차순 정렬
arr.sort(function(a, b) {
return a - b;
});
- 내림차순 정렬
arr.sort(function(a, b) {
return b - a;
});
< splice >
- array.splice(start, deleteCount, item1, item2...)
- 배열의 기존 요소를 삭제 또는 교체하거나, 새 요소를 추가
- start의 index 값이 음수일 경우 뒤에서 부터 카운트 가능
- deleteCount를 생략하면 start 부터 모든 요소 제거, 0이하라며 제거하지 않음
- ex)
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"]
< split >
- string.split(separator, limit)
- separtator : 문자열, 정규식, ''
- 문자열을 separator로 잘라서, limit 크기 이하의 배열에 저장하여 문자열로 리턴
- separator에 빈값''를 입력하면 문자열 전체를 배열에 담아서 리턴
< toString >
- obj.toString()
- 문자열로 반환
- 숫자를 변환할 경우 변수값에 진수값을 넣으면 해당 진수로 변환