JavaScript

๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ

presentKey 2023. 12. 18. 20:29

๐Ÿšฉ join

๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์—ฐ๊ฒฐํ•ด ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

const arr = ['a', 'b', 'c'];

console.log(arr.join()); // a,b,c
console.log(arr.join('')); // abc
console.log(arr.join('-')); // a-b-c

 

๐Ÿšฉ splice

๋ฐฐ์—ด์˜ ๊ธฐ์กด ์š”์†Œ๋ฅผ ์‚ญ์ œ ๋˜๋Š” ๊ต์ฒดํ•˜๊ฑฐ๋‚˜ ์ƒˆ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์›๋ณธ ๋ฐฐ์—ด์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ( *์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด .toSpliced() ์‚ฌ์šฉ )

๋ฐ˜ํ™˜๊ฐ’์€ ์ œ๊ฑฐํ•œ ์š”์†Œ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด

.slice(์ธ๋ฑ์Šค, ์‚ญ์ œํ•  ๊ฐœ์ˆ˜, ์ถ”๊ฐ€ํ•  ์•„์ดํ…œ)
const arr = ['a', 'b', 'c'];
const result = arr.splice(1, 1);

console.log(arr); // ['a', 'c'] → 1๋ฒˆ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์š”์†Œ 1๊ฐœ ์ œ๊ฑฐ
console.log(result); // ['b'] → ์ œ๊ฑฐํ•œ ์š”์†Œ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
const arr = ['a', 'b', 'c'];
const result = arr.splice(1, 1, 'd');

console.log(arr); // ['a', 'd', 'c'] → 1๋ฒˆ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ 1๊ฐœ ์ œ๊ฑฐ ํ›„, 'd' ์ถ”๊ฐ€
console.log(result); // ['b'] → ์ œ๊ฑฐํ•œ ์š”์†Œ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
const arr = ['a', 'b', 'c'];
const result = arr.splice(1, 0, 'd');

console.log(arr); // ['a', 'd', 'b', 'c'] → 1๋ฒˆ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ 0๊ฐœ ์ œ๊ฑฐ ํ›„, 'd' ์ถ”๊ฐ€
console.log(result); // [] → ์ œ๊ฑฐ๋œ ์š”์†Œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜

 

๐Ÿšฉ slice

๋ฐฐ์—ด์˜ begin๋ถ€ํ„ฐ end๊นŒ์ง€(end ๋ฏธํฌํ•จ)์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์›๋ณธ ๋ฐฐ์—ด์€ ๋ฐ”๋€Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

.slice(begin ์ธ๋ฑ์Šค, end ์ธ๋ฑ์Šค)
const arr = ['a', 'b', 'c'];
const result1 = arr.slice(1, 2);
const result2 = arr.slice(1);

console.log(arr); // ['a', 'b', 'c'] → ์›๋ณธ ๋ฐฐ์—ด์€ ๋ฐ”๋€Œ์ง€ ์•Š์Œ
console.log(result1); // ['b'] → 1๋ฒˆ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ 1๋ฒˆ ์ธ๋ฑ์Šค๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฐ˜ํ™˜
console.log(result2); // ['b', 'c'] → 1๋ฒˆ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฐ˜ํ™˜

 

๐Ÿšฉ shift

๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์ œ๊ฑฐ๋œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์›๋ณธ ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

const arr = ['a', 'b', 'c'];
const first = arr.shift();

console.log(arr); // ['b', 'c'] → ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์ œ๊ฑฐ
console.log(first); // a → ์ œ๊ฑฐ๋œ ์š”์†Œ ๋ฐ˜ํ™˜

 

๐Ÿšฉ unshift

์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋ฐฐ์—ด์˜ ๋งจ ์•ž์ชฝ์— ์ถ”๊ฐ€ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์›๋ณธ ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

const arr = ['a', 'b', 'c'];
const length = arr.unshift('e');

console.log(arr); // ['e', 'a', 'b', 'c'] → 'e'๋ฅผ ๋งจ ์•ž์— ์ถ”๊ฐ€
console.log(length); // ์ƒˆ๋กœ์šด ๊ธธ์ด ๋ฐ˜ํ™˜

 

๐Ÿšฉ reduce / reduceRight

๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ๋Œ๋ฉด์„œ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

// prev: ์ด์ „ ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
// curr: ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐฐ์—ด์˜ ์š”์†Œ ๋ฐ˜ํ™˜

// ๋ฐฐ์—ด์˜ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ณ„์‚ฐ
reduce((prev, curr) => prev + curr, ์ดˆ๊ธฐ๊ฐ’)

// ๋ฐฐ์—ด์˜ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๊ณ„์‚ฐ
reduceRight((prev, curr) => prev + curr, ์ดˆ๊ธฐ๊ฐ’)
const arr = [1, 2, 3];
const sum = arr.reduce((prev, curr) => prev + curr, 0);

console.log(arr); // [1, 2, 3]
console.log(sum); // 6
const arr = [1, 2, 3];
const sum = arr.reduceRight((prev, curr) => prev + curr, 0);

console.log(arr); // [1, 2, 3]
console.log(sum); // 6

 

๐Ÿšฉ sort

๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ •๋ ฌํ•œ ํ›„, ๊ทธ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์›๋ณธ ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ( *์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด .toSorted() ์‚ฌ์šฉ )

const arr = [2, 1, 3];
const result = arr.sort((a, b) => a - b);

console.log(arr); // [1, 2, 3] → ์˜ค๋ฆ„์ฐจ์ˆœ
console.log(result); // [1, 2, 3]
const arr = [2, 1, 3];
const result = arr.sort((a, b) => b - a);

console.log(arr); // [3, 2, 1] → ๋‚ด๋ฆผ์ฐจ์ˆœ
console.log(result); // [3, 2, 1]

 

 

๐Ÿšฉ reverse

๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ˜์ „ํ•ฉ๋‹ˆ๋‹ค.

์›๋ณธ ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ( *์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด .toReversed() ์‚ฌ์šฉ )

const arr = [1, 2, 3];
const result = arr.reverse();

console.log(arr); // [3, 2, 1]
console.log(result); // [3, 2, 1]