[보충] 함수 / 배열

728x90
반응형

1. 함수

//함수:풀어씀
let a = function (input) {
    return output;
};

동일: 짧게씀
function a(input) {
    return output;
}

console.log(typeof a); //object
//참조형(배열,객체,함수) typeof : object
//3을 반환하는 함수
let f1 = function () {
    return 3;
};

//동일
let test1 = 3;
let test2 = f1();

//인자(parameter) = input
let f2 = function (a) {
    return a;
};

let test3 = f2(1); // 1
//1. 인자를 3개 받아서, 모든 값을 더해서 출력하는 함수
let func01 = function add(a, b, c) {
    return a + b + c;
};
console.log(func01(1, 1, 1));

//2. 인자를 2개 받아서 모든 값을 곱해서 출력하는 함수
let func02 = function multi(a, b) {
    return a * b;
};
console.log(func02(2, 3));

//3.인자를 4개 받아서 console.log에 합을 출력하고 아웃풋은 없는 함수
let func03 = function multiFour(a, b, c, d) {
    console.log(a + b + c + d);
};

func03(1, 2, 3, 4);

//4.
let testFunc = function (a, b) {
    console.log(a + b);
    return a * b;
};

console.log(testFunc(2, 3));
//화살표 함수
let fun04 = function(a,b){
    return a+b;
}


fetch('url')
.then(res=>res.json())
//.then(res2=>console.log(res2));
.then(function(res2){
    'dataatatata'
})

 

2. 배열

//조건
//for(let a= 0 ; a <5 ;a =6)
//a가 0일때 한번 돌고 out
//1번 출력

//for(let a= 5 ; a <5 ;a =6)
//처음이여도 a<5 조건에 맞아야 들어감
// 0번 출력

//배열.forEach(value, index)(function {};)  > index : 두번째 인자는 선택사항

//배열: length
const arr = [1, 2, 3, 4, 5];
for (let a = 0; a < arr.length; a++) {
    console.log(arr[a]);
}

//for문 사용 x : forEach
const arr01 = [1, 4, 2, 3, 10, 15, 0];
arr01.forEach(function (x) {
    console.log(x);
});

// 배열 : filter

//함수와 메서드(호출주체o) 의 차이 (호출주체 유무)

//filter -> 새로운 배열 생성 --> return true / false
//arr01에있는 요소 중에서 5이상인 값을 이용해서 새로운 배열 만들기
const arr01 = [1, 4, 2, 3, 10, 15, 0];

const resultArrow = arr01.filter((x) => x > 5);
const resultBasic = arr01.filter(function (x) {
    if (x > 5) return true;
});

//배열 : filter + includes

const arr02 = ['홍길동', '홍길순', '옹길동'];

const arr02Result = arr02.filter(function (value) {
    if (value.includes('홍길')) return true;
});

console.log(arr02Result);

const arr02Result2 = arr02.filter((x) => x.includes('홍길'));
console.log(arr02Result2);

//배열 : find

//filter + [0]번째 요소  = find

const arr02 = ['홍길동', '홍길순', '옹길동'];
const arr02Result2 = arr02.filter((x) => x.includes('홍길'));
console.log(arr02Result2[0]); //홍길동

//find :조건에 해당하는 첫번째 요소 출력
//filter + [0]번쨰 요소 =find
const arrFind = arr02.find((x) => x.includes('홍길'));
console.log(arrFind); //홍길동

//배열 : map

// map을 사용해서 객체 return 가

//map
const arr = [1, 2, 5, 10, 4];
const result = arr.map(function (value, index) {
    console.log(value);
    console.log(index);
    return {
        key: value,
        value: value * 2,
    };
});

//map은 배열의 개수만큼 undefined라도 할당이됨
//return에 있는 값이 출력
console.log(result); //[ undefined, undefined, undefined, undefined, undefined ]

// 배열 리턴 -> 가공해서 새로운 것 출력
console.log(result);
/*
[
    { key: 1, value: 2 },
    { key: 2, value: 4 },
    { key: 5, value: 10 },
    { key: 10, value: 20 },
    { key: 4, value: 8 }
  ]
*/

//최종 정리 : 배열 체이닝 

//map + filter + forEach

//filter + map 많이 사용

//arr 안에 있는요소 2배씩해서
//5이상인 애들만 필터링해서 새로운 배열 만들기
//filter.map 많이 사용함

const arr03 = [1, 2, 5, 10, 4];

const result03 = arr03
    .map(function () {
        return * 2; //2,4,10,20,8
    })
    .filter(function () {
        return >= 5; //10,20,8
    }).forEach(function () {
        console.log();
    });
반응형