일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- mysql wsl
- 블록 만들기
- 라우터미들웨어 분리
- 라우터 분리
- 비동기파일업로드
- useContext
- 라우터와 미들웨어
- css기초
- next 매개변수
- express실행
- 세션으로 로그인 구현
- buffer.from
- useEffect clean up
- OAuth 카카오
- express.static
- express router
- nodejs파일업로드
- FormData()
- 아이디 중복체크기능
- express session
- JWT 로그인 기능 구현
- cookie-parser 만들어보기
- JWT 만들어보기
- 라우트 매개변수
- ws 라이브러리
- 시퀄라이즈 기본설정
- javascript기초
- JWT 하드코딩
- node.js path
- Uncaught Error: could not find react-redux context value; please ensure the component is wrapped in a <Provider>
- Today
- Total
즐코
배열 - array method에 대하여 (API) - 1 본문
배열 Array
1/ 배열 선언 (string - array)
2/ 배열의 반복문
3/ 더하고 빼고 복사하기
4/ 데이터 검색
배열 관련 method 공부를 미루다가 이제야 했다.
method는 함수와 같이 데이터를 return하면서 데이터타입을 변형시켜주기도 한다.
* 이런 API 공부는 키워드를 VSC에서 키워드를 치고 ctrl을 누른채 클릭하면 무슨 기능을 하는지, 어떤 인자들을 넣어야 하는지 자세히 설명이 나온다. 구글링도 좋은 방법이지만, 직관적으로 내장된 API 사용법을 보는 것도 좋다고 한다..
1/ 배열 선언
#1. string을 array로 바꿔주는 방법
1. .split('separator')
separator 구분자를 넣어주지 않으면 문자열이 뭉쳐서 4개 아니라 총 1개의 요소를 가진 배열이 나온다.
const fruits = '🍎, 🥝, 🍌, 🍒';
const fruits_arr = fruits.split(',')
console.log(fruits_arr)
// 출력 :(4) ['🍎', ' 🥝', ' 🍌', ' 🍒']
반면, array를 string으로 바꿔주려면?
#2. array를 string으로 바꿔주는 방법
1. new String( )
아래 출력 부분처럼 apple/banana/orange 단어 단위로 쪼개지지 않고, 알파벳 단위로 쪼개졌다.
이렇게 할 경우 litral, primitive type 즉 원시값이 아니라 object type의 문자열로 변환된다.
let fruits = ['apple', 'banana', 'orange']
let fruits_str = new String(fruits)
console.log(fruits_str)
// 출력
// String {'apple,banana,orange'}
// 0: "a"
// 1: "p"
// ....(생략)
// 17: "g"
// 18: "e"
// length: 19
// [[Prototype]]: String
2. .join('separator')
배열 뒤에 join을 붙이고 구분자를 인자로 넣어주면 끝
이때 저 separator는 optional한 부분이므로, 비워두면 default로 콤마(,)가 들어간다.
let fruits_str2 = fruits.join('/')
console.log(fruits_str2)
// 출력 apple/banana/orange
console.clear()
let fruits_str2 = fruits.join()
console.log(fruits_str2)
// 출력 apple,banana,orange
3. .toString( )
join처럼 배열을 문자열로 바꿔주지만, 구분자 옵션은 없어서 기본적인 콤마(,)로 구분되어 return된다.
2/ 배열의 반복문
1. for
자주했던 거라 설명은 생략
const fruits = ['apple','banana']
for (let i= 0; i<fruits.length; i++){
console.log(fruits[i])
}
//출력
apple
banana
orange
2. for of
for 문과 흡사하나 살짝 다름
/ for 문 안에서 변수 선언하는 거 까진 같으나, of 를 써서 배열을 낱개의 문자열로 풀어주는 효과
for (let arr of arrs){ }
for (let fruit of fruits){
console.log(fruit);
}
3. .forEach( )
인자값으로 callback 함수를 받아온다.
=> 배열의 개수 만큼 돌건데 이 함수의 값이 돌거다 라는 뜻
forEach의 콜백함수 인자로는 배열의 데이터 / index# / 배열 전체
* 콜백함수 = 함수 내에 매개변수로 들어가는 함수
콜백함수 용도 = 뭔가 순차적으로 실행하고싶을 때 쓴다. (중요한 내용이라 따로 포스팅해야겠다)
콜백함수의 모든 인자를 다 받아올 경우 (배열 내 각각의 데이터 / index / 배열 전체)
fruits.forEach(function(fruit,index,array){ console.log(fruit,index,array) })
아래와 같이 출력
이 때, for과 같이 데이터만 뽑아내고싶으면 인자를 하나만 쓴다.
arrow 함수 써보면,fruits.forEach((fruit) => console.log(fruit))
아래와 같이 출력
** Arrow 함수
함수명이 없는 익명함수 (변수에 함수를 담아 호출하는 형태) 에만 쓰인다.
let/const 변수명 = ( ) => { } 의 형태
좀더 자세히,,
let/const 함수를 담을 변수 선언 = (인자값 넣거나말거나) => {함수 내 출력문}
const printhello = () => console.log('hello!') const add = (a,b) => a+b; const multiply = (a,b) => {return a*b}
4. .filter( )
arr.filter( )도 콜백함수를 인자로 가져온다.
이 콜백함수의 인자는 처리할 요소들을 넣고, 함수 내의 테스트를 통과해서 true인 요소들만 걸러내주는 메서드이다.
나머지 인자들은 나중에 쓸 때 알아보면 될듯..
콜백함수로 익명함수 넣을 시
let cats = ['hoochu', 'dori', 'mongzi', 'pudding', 'cheddar'] let shortname = cats.filter(cat => cat.length < 7) console.log(shortname) //출력 : (3) ['hoochu', 'dori', 'mongzi']
콜백함수로 일반함수 넣을 시
function undervalue(value){ return value >= 10; } let filtered = [12, 5, 30, 9, 150, 55].filter(undervalue) console.log(filtered) // 출력 : (4) [12, 30, 150, 55]
5. .map( )
배열 내의 모든 요소들을 대해서 함수를 호출한 결과를 모아 새로운 배열을 반환해주는 메서드이다.
arr.map( )도 콜백함수를 인자로 데려온다.
let num = [1,2,3,4,5] let doubles = num.map(x=>x*2) console.log(doubles) console.log(num)
num 배열의 각 요소들이 함수를 거쳐서 doubles라는 새로운 배열이 담겨 나온다.
num은 그대로 [1,2,3,4,5]를 유지한다.
6. .reduce( )
이건 시간날때 알아봐야지,,
'JavaScript' 카테고리의 다른 글
Javascript와 html을 연결해보자 / 콜백함수 (1) | 2022.01.12 |
---|---|
DOM ?! / class 와 object (1) | 2022.01.11 |
깊은 복사 vs 얕은 복사 / spread (...) ! (0) | 2022.01.07 |
배열 array와 객체 object / property와 method (0) | 2022.01.06 |
Function 함수/ return vs. console.log (0) | 2022.01.06 |