ํ”„๋ก ํŠธ์—”๋“œ/React

โœ… ๋ฐฐ์—ด ๋‚ด์žฅ ํ•จ์ˆ˜(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)

alswlfl 2022. 11. 17. 15:53

forEach

: for๋ฌธ ๋Œ€์ฒด, ๋ฐฐ์—ด ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ์›์†Œ๋“ค์„ ๋ชจ๋‘ ์ถœ๋ ฅ

const superheroes = ['์•„์ด์–ธ๋งจ', '์บกํ‹ด ์•„๋ฉ”๋ฆฌ์นด', 'ํ† ๋ฅด', '๋‹ฅํ„ฐ ์ŠคํŠธ๋ ˆ์ธ์ง€'];

//for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ์›์†Œ ์ถœ๋ ฅ
for (let i=0; i<superheroes.length; i++){
	console.log(superheroes[i]);
}

//forEachํ•จ์ˆ˜ ์‚ฌ์šฉ
superheroes.forEach(hero => {
	console.log(hero);
});

- forEach ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฐ ์›์†Œ์— ๋Œ€ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์€ ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜๋กœ ๋„ฃ์–ด์คŒ

- ์ฝœ๋ฐฑํ•จ์ˆ˜: ํ•จ์ˆ˜ํ˜•ํƒœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ

 

map

: ๋ฐฐ์—ด ์•ˆ์˜ ๊ฐ ์›์†Œ๋ฅผ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์ด ๋งŒ๋“ค์–ด์ง

const array = [1,2,3,4,5,6,7,8];

const squared = [];

//for๋ฌธ ์ด์šฉ
for (let i=0; i<array.length; i++){
	squared.push(array[i]*array[i]);
}

console.log(squared);

//forEach ์ด์šฉ
array.forEach(n => {
	squared.push(n*n);
});

console.log(squared);

//map์ด์šฉ
const square= n => n*n;
const squared = array.map(square);
console.log(squared);

- mapํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ณ€ํ™”๋ฅผ ์ฃผ๋Š” ํ•จ์ˆ˜ ์ „๋‹ฌ(๋ณ€ํ™”ํ•จ์ˆ˜)

 

indexOf

: ์›ํ•˜๋Š” ํ•ญ๋ชฉ์ด ๋ช‡ ๋ฒˆ์งธ ์›์†Œ์ธ์ง€ ์ฐพ์•„์ฃผ๋Š” ํ•จ์ˆ˜

const superheroes = ['์•„์ด์–ธ๋งจ', '์บกํ‹ด ์•„๋ฉ”๋ฆฌ์นด', 'ํ† ๋ฅด', '๋‹ฅํ„ฐ ์ŠคํŠธ๋ ˆ์ธ์ง€'];

const index=superheroes.indexOf('ํ† ๋ฅด');
console.log(index);

- index๊ฐ’์€ 0๋ถ€ํ„ฐ ์‹œ์ž‘

 

findIndex

: ๋ฐฐ์—ด ์•ˆ์— ์žˆ๋Š” ๊ฐ’์ด ๊ฐ์ฒด์ด๊ฑฐ๋‚˜, ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ ๋ช‡ ๋ฒˆ์งธ ์ธ์ง€ ์ฐพ์•„์ฃผ๋Š” ํ•จ์ˆ˜(์กฐ๊ฑด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๋„ฃ์–ด ์ฐพ์Œ)

const todos = [
  {
    id: 1,
    text: '์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž…๋ฌธ',
    done: true
  },
  {
    id: 2,
    text: 'ํ•จ์ˆ˜ ๋ฐฐ์šฐ๊ธฐ',
    done: true
  },
  {
    id: 3,
    text: '๊ฐ์ฒด์™€ ๋ฐฐ์—ด ๋ฐฐ์šฐ๊ธฐ',
    done: true
  },
  {
    id: 4,
    text: '๋ฐฐ์—ด ๋‚ด์žฅํ•จ์ˆ˜ ๋ฐฐ์šฐ๊ธฐ',
    done: false
  }
];

const index=todos.findIndex(todo => todo.id===3);
console.log(index);

 

find

: findIndex๋ž‘ ๋น„์Šท, ์ฐพ์•„๋‚ธ ๊ฐ’ ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜

const todos = [
  {
    id: 1,
    text: '์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž…๋ฌธ',
    done: true
  },
  {
    id: 2,
    text: 'ํ•จ์ˆ˜ ๋ฐฐ์šฐ๊ธฐ',
    done: true
  },
  {
    id: 3,
    text: '๊ฐ์ฒด์™€ ๋ฐฐ์—ด ๋ฐฐ์šฐ๊ธฐ',
    done: true
  },
  {
    id: 4,
    text: '๋ฐฐ์—ด ๋‚ด์žฅํ•จ์ˆ˜ ๋ฐฐ์šฐ๊ธฐ',
    done: false
  }
];

const todo = todos.find(todo => todo.id === 3);
console.log(todo);

//๊ฒฐ๊ณผ๊ฐ’: {id: 3, text: "๊ฐ์ฒด์™€ ๋ฐฐ์—ด ๋ฐฐ์šฐ๊ธฐ", done: true}

 

filter

: ๋ฐฐ์—ด์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’๋“ค๋งŒ ๋”ฐ๋กœ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋งŒ๋“ฆ

const todos = [
  {
    id: 1,
    text: '์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž…๋ฌธ',
    done: true
  },
  {
    id: 2,
    text: 'ํ•จ์ˆ˜ ๋ฐฐ์šฐ๊ธฐ',
    done: true
  },
  {
    id: 3,
    text: '๊ฐ์ฒด์™€ ๋ฐฐ์—ด ๋ฐฐ์šฐ๊ธฐ',
    done: true
  },
  {
    id: 4,
    text: '๋ฐฐ์—ด ๋‚ด์žฅํ•จ์ˆ˜ ๋ฐฐ์šฐ๊ธฐ',
    done: false
  }
];

const tasksNotDone = todos.filter(todo => todo.done === false);
console.log(tasksNotDone);

/*
๊ฒฐ๊ณผ๊ฐ’
[
  {
    id: 4,
    text: '๋ฐฐ์—ด ๋‚ด์žฅ ํ•จ์ˆ˜ ๋ฐฐ์šฐ๊ธฐ',
    done: false
  }
];
*/

- filterํ•จ์ˆ˜์— ๋„ฃ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ: ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜(๊ฐ ์›์†Œ์˜ ๊ฐ’ ๋ฐ›์•„์˜ด)

 

splice

: ๋ฐฐ์—ด์—์„œ ํŠน์ • ํ•ญ๋ชฉ ์ œ๊ฑฐ

const numbers = [10, 20, 30, 40];
const index = numbers.indexOf(30);
numbers.splice(index, 1);
console.log(numbers);

//๊ฒฐ๊ณผ๊ฐ’
//[10, 20, 40]

- ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์–ด๋–ค ์ธ๋ฑ์Šค๋ฅผ ์ง€์šธ์ง€ ์˜๋ฏธ, ๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๊ทธ ์ธ๋ฑ์Šค๋กœ ๋ถ€ํ„ฐ ๋ช‡ ๊ฐœ๋ฅผ ์ง€์šธ์ง€ ์˜๋ฏธ

 

slice

: ๋ฐฐ์—ด์„ ์ž˜๋ผ๋‚ผ ๋•Œ ์‚ฌ์šฉ, ๊ธฐ์กด์˜ ๋ฐฐ์—ด์€ ๊ฑด๋“ค์ด์ง€ ์•Š์Œ

const numbers=[10,20,30,40];
const sliced=numbers.slice(0,2); //0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ 2์ „๊นŒ์ง€

console.log(sliced); //[10,20]
console.log(numbers); //[10,20,30,40]

- ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์–ด๋””์„œ๋ถ€ํ„ฐ ์ž๋ฅผ์ง€, ๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์–ด๋””๊นŒ์ง€ ์ž๋ฅผ์ง€ ์˜๋ฏธ

 

shift์™€ pop

shift: ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๋ฐฐ์—ด์—์„œ ์ถ”์ถœ (์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐฐ์—ด์—์„œ ํ•ด๋‹น ์›์†Œ ์‚ฌ๋ผ์ง)

const numbers = [10, 20, 30, 40];
const value = numbers.shift();
console.log(value);
console.log(numbers);

/*
10
[20, 30, 40]
*/

pop: push์˜ ๋ฐ˜๋Œ€ ๊ฐœ๋…, push๋Š” ๋ฐฐ์—ด์˜ ๋งจ ๋งˆ์ง€๋ง‰์— ์ƒˆ ํ•ญ๋ชฉ ์ถ”๊ฐ€, pop์€ ๋งจ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ์„ ์ถ”์ถœ

const numbers = [10, 20, 30, 40];
const value = numbers.pop();
console.log(value);
console.log(numbers);

/*
40
[10, 20, 30]
*/

 

unshift

: ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ƒˆ ์›์†Œ ์ถ”๊ฐ€

const numbers = [10, 20, 30, 40];
numbers.unshift(5);
console.log(numbers);

//[5, 10, 20, 30, 40]

 

concat

: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ํ•ฉ์นจ

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const concated = arr1.concat(arr2);

console.log(concated);

//[1, 2, 3, 4, 5, 6];

- arr1๊ณผ arr2์— ๋ณ€ํ™”๋ฅผ ์ฃผ์ง€ ์•Š์Œ(์ฆ‰, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด๋ƒ„)

 

join

: ๋ฐฐ์—ด ์•ˆ์˜ ๊ฐ’๋“ค์„ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ํ•ฉ์นจ

const array = [1, 2, 3, 4, 5];
console.log(array.join()); // 1,2,3,4,5
console.log(array.join(' ')); // 1 2 3 4 5
console.log(array.join(', ')); // 1, 2, 3, 4, 5

 

reduce

: ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ ์‹คํ–‰ ๊ฐ’์„ ๋ˆ„์ ํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๊ฐ’ ๋ฐ˜ํ™˜

//์ฃผ์–ด์ง„ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ดํ•ฉ ๊ตฌํ•˜๊ธฐ
const numbers = [1, 2, 3, 4, 5];

let sum = 0;

//forEach ์‚ฌ์šฉ
numbers.forEach(n => {
  sum += n;
});
console.log(sum);

//reduce ์‚ฌ์šฉ
let sum = array.reduce((accumulator, current) = > accumulator+current,0);

console.log(sum);

- ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” accumulator์™€  current๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฐ€์ ธ์™€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜

- ๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” reduceํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉ ํ•  ์ดˆ๊ธฐ๊ฐ’