[React] React의 다양한 함수들 - forEach, map

김유진·2022년 8월 4일
0

React

목록 보기
25/64
post-custom-banner

1. ForEach함수

배열 함수 forEach()는 for문에서 사용하던 순번과 배열의 크기 변수를 사용하지 않는다. 다만, 배열의 처음부터 마지막 순번까지 모두 작업하는 경우에는 forEach()함수를 사용하는 것이 간편하다.
다음 예시를 확인해보자.

class R014_ForEach extends Component {
    componentDidMount(){
        var For_Arr = [3,2,8,8];
        var For_newArr = [];

        for (var i = 0; i < For_Arr.length; i++){
            For_newArr.push(For_Arr[i]);
        }
        console.log("1. For_newArr : ["+ For_newArr+ "]");

        var ForEach_Arr=[3,3,9,8];
        var ForEach_newArr =[];
        ForEach_Arr.forEach((result)=>{
            ForEach_newArr.push(result);
        })
        console.log("2. ForEach_newArr : [" + ForEach_newArr+ "]");

두 코드를 비교해보면 차이점이 느껴진다.

2. Map()함수

배열 함수 map()은 forEach()와 마찬가지로 for문에서 사용하던 순번과 배열의 크기 변수를 사용하지 않는다. 차이점은 map()은 forEach()와 달리 return을 사용하여 반환 값을 받을 수 있다.

class R015_Map extends Component {
  componentDidMount(){
      var Map_Arr =[3,2,8,8]
      let Map_newArr = Map_Arr.map(x => x)
      console.log("1. Map_newArr : [" + Map_newArr+ "]")
```에 저
기존 배열 `Map_Arr`에서 map()함수를 이용하여 순서대로 하나씩 요소에 접근한다. 이때마다 콜백 함수가 실행된다. 가져온 값을 변수 x에 넣은 뒤에, 그대로 반환하여 `x=>x` 순서대로 쌓아둔다. 마지막 요소까지 반복했다면 한번에 새로운 배열 Map_newArr에 저장한다.
여기서 `x=>x``Map_Arr.map( x => {return x})` 와 같다. 화살표 함수는 return 구문을 생략 가능하다.

이제 곱셈을 해서 새로운 배열에 저장해보자.
```js
let Map_mulitiArr = Map_Arr.map(x => x * 2)
      console.log("2. Map_mulitiArr : [" + Map_mulitiArr + "]")


타단~ 이렇게 저장된다!

다음으로는 배열 안에 객체를 생성한다.

var ObjArray = [{key: 'react', value : '200'}, {key : '리액트', value : 'TwoHundred'}];

배열 안에 있는 객체를 순서대로 가져와 콜백 함수를 실행한다. 가져온 값을 obj라는 변수에 저장한다. 콜백 함수의 두번째 인자인 index는 기존 배열의 인덱스와 동일하다!

let Map_objArr = ObjArray.map((obj,index) => {

자. 이제 새로운 객체 Obj를 선언해보자. 기존 객체 ObjArray의 key, value값을 새로운 객체 Obj의 key, value 값으로 저장한다. 모든 반복이 끝나면, Map_objArr 변수에 반환 값들을 저장한다.

let Map_objArr = ObjArray.map((obj,index) => {
            console.log((index+3)+". obj : " + JSON.stringify(obj))
            var Obj = {};
            Obj[obj.key] = obj.value;
            return Obj;
        });

짜잔~ objArray가 예쁘게 Map_objArr에 담겨져있다.

post-custom-banner

0개의 댓글