JavaScript : Array

camilleยท2022๋…„ 4์›” 3์ผ
0

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
4/7
post-thumbnail

javascript# ๐Ÿ“™ Array : ๋ฐฐ์—ด

๋ฐฐ์—ด์€ ํŠน์ •ํ•œ ์š”์†Œ๋“ค(๋ฐ์ดํ„ฐ๋“ค)์„ ์ผ๋ ฌ๋กœ ์ผ์ •ํ•˜๊ฒŒ ๋ชจ์•„๋†“์€ ์ง‘ํ•ฉ์œผ๋กœ
๋ฐฐ์—ด์•ˆ์—๋Š” ์š”์†Œ์ธ, element๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ, ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
let CamilleArray = [19, 50, 'What', false]
๋ฐฐ์—ด์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์•„๋ฌด๊ฑฐ๋‚˜ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹ฌ์ง€์–ด ๋ฐฐ์—ด์•ˆ์— ๋‹ค๋ฅธ ๋ฐฐ์—ด ๋˜ํ•œ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๋ฐฐ์—ด์˜ ๋˜๋‹ค๋ฅธ ํŠน์ง•์€ ๋ฐฐ์—ด์•ˆ์—๋Š” ์ˆœ์„œ๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์ด๊ณ , 0๋ถ€ํ„ฐ ์ˆœ์„œ(index)๋ฅผ ์…€ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ 19๋Š” 0๋ฒˆ์งธ์˜ ์š”์†Œ์ด๋‹ค.

๐Ÿ“Œ 1. ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ

let fruits = ['Apple', 'Banana','Lemon',100]
let first = fruits[0]
console.log(first);
< Apple

fruit ์˜†์— [0] ์ˆœ์„œ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ•ด๋‹น ๋ฐฐ์—ด์˜ ํ•ด๋‹น ์š”์†Œ์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ 2. ์š”์†Œ ์ˆ˜์ •ํ•˜๊ธฐ

์‘์šฉ1

let fruits = ['Apple', 'Banana','Lemon',100]
let first = fruits[0]

fruits[0] = 'Strawberry';
console.log(fruits[0]);
< Strawberry

์‘์šฉ2

let fruits = ['Apple', 'Banana','Lemon',100]
let first = fruits[0]

fruits[0] = 'Strawberry';
fruits[2] = 300;
console.log(fruits);

<['Strawberry', 'Banana', 300, 100]

๐Ÿ“Œ 3. ๋ฐฐ์—ด ๊ธธ์ด ๊ตฌํ•˜๊ธฐ

let fruits = ['Apple', 'Banana','Lemon',100]
console.log(fruits.length)
< 4

์—ฌ๊ธฐ์„œ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ 4์ง€๋งŒ ์ธ๋ฑ์Šค(์ˆœ์„œ)๋Š” 3์ธ ์ด์œ ๋Š” ๋ฐฐ์—ด์˜ ์‹œ์ž‘์„ 0๋ถ€ํ„ฐ ์„ธ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
0,1,2,3 ์ด ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” 4์ด์ง€๋งŒ ์ธ๋ฑ์Šค์˜ ๋์€ 3์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
๐Ÿ”” ์œ ๋…ํ•ด์•ผํ•  ์  ! ๊ธธ์ด๊ฐ€ 4์ธ ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค์˜ ๊ฐ€์žฅ ๋์€ 3์ด๋‹ค.

๐Ÿ“Œ 4. ๋ฐฐ์—ด ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ ํ•˜๊ธฐ

โœ” ๋ฐฐ์—ด ์ถ”๊ฐ€ํ•˜๊ธฐ

๊ธฐ๋ณธํ˜• : ๋ฐฐ์—ด๋ช….push(์ถ”๊ฐ€ํ• ๋‚ด์šฉ)

let fruits = ['Apple', 'Banana','Lemon',100]
fruits.push('Kiwi');
console.log(fruits)
<['Apple', 'Banana','Lemon',100, 'Kiwi']

โœ” ๋ฐฐ์—ด ์‚ญ์ œํ•˜๊ธฐ

pop - ๋ฐฐ์—ด ๋์—์„œ ๋ถ€ํ„ฐ ์‚ญ์ œ

1.
let fruits = ['Apple', 'Banana','Lemon',100]
fruits.pop();
<['Apple', 'Banana', 'Lemon']
2.
let fruits = ['Apple', 'Banana','Lemon',100]
fruits.pop();
fruits.pop();
<['Apple', 'Banana']

shift -๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ์ฒ˜์Œ ๋ถ€ํ„ฐ ์‚ญ์ œ

let fruits = ['Apple', 'Banana','Lemon',100]
fruits.shift();
<['Banana', 'Lemon', 100]

์œ„์˜ ๊ทธ๋ฆผ์—์„œ๋Š”

splice - (๋ฐฐ์—ด์˜ index์˜ ์‹œ์ž‘์ ,์‚ญ์ œํ•  ์š”์†Œ์˜ ๊ฐœ์ˆ˜,์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ์š”์†Œ)๊ตฌ์ฒด์ ์ธ ์ˆœ์„œ๋กœ ์‚ญ์ œ

(์ธ์ž 3๊ฐœ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜์žˆ์ง€๋งŒ, splice ๋ฉ”์„œ๋“œ๋Š” ํ•„์š”์— ๋”ฐ๋ผ ์ธ์ž๋ฅผ ์ตœ์†Œ 1๊ฐœ๋งŒ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค.)

์‘์šฉ1

let num = [1,2,3,4,5];
num.splice(2,1,10);

console.log(num); // [ 1, 2, 10, 4, 5 ]
์‘์šฉ2

let fruits = ['Apple', 'Banana','Lemon',100]
fruits.splice(1,2);
<['Banana', 'Lemon']

slice - (๋ฐฐ์—ด์˜ index์˜ ์‹œ์ž‘์ , ๋ฐฐ์—ด์˜ index์˜ ๋์ )

์ฒซ๋ฒˆ์งธ ์ธ์ž : ๋ฐฐ์—ด์˜ index์˜ ์‹œ์ž‘์ 
๋‘๋ฒˆ์งธ ์ธ์ž : ๋ฐฐ์—ด์˜ index์˜ ๋์ 
์˜ˆ๋ฅผ ๋“ค์–ด, [1,2,3,4,5] ๋ผ๋Š” ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, ์ˆซ์ž 2~4๊นŒ์ง€๋งŒ ๋‚จ๊ธฐ๊ณ  ์‹ถ์„ ๋–ผ

let nums = [1,2,3,4,5]
let nums_new = nums.slice(1,4)

console.log(nums) // [ 1, 2, 3, 4, 5 ]
console.log(nums_new) // [ 2, 3, 4 ]
let nums = [1,2,3,4,5]
let nums_new = nums.slice(1,4)

console.log(nums) // [ 1, 2, 3, 4, 5 ]
console.log(nums_new) // [ 2, 3, 4 ]

์‹œ์ž‘์ ์ธ index๊ฐ€ 1์ธ ์š”์†Œ๋ถ€ํ„ฐ ๋์ ์ธ index๊ฐ€ 4์ธ ์š”์†Œ๊นŒ์ง€๋ฅผ ํฌํ•จํ•ด 2,3,4๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค.
slice ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ์ดํ›„์— ์›๋ณธ ๋ฐฐ์—ด์ธ nums๋ฅผ ์ฝ˜์†”์ฐฝ์—์„œ ํ™•์ธํ•ด๋ณด๋ฉด ๋ณ€ํ•จ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, slice๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ผญ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋ช…์„ ํ• ๋‹นํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๐Ÿ”” ์Œ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ!!

let nums = [1,2,3,4,5]
let nums_new = nums.slice(-2)

console.log(nums) // [ 1, 2, 3, 4, 5 ]
console.log(nums_new) // [ 4, 5 ]

์Œ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ ๋์—์„œ๋ถ€ํ„ฐ ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž ๋งŒํผ์˜ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋œ๋‹ค.

filter : filter() ๋ฉ”์„œ๋“œ๋Š” array ๊ด€๋ จ ๋ฉ”์„œ๋“œ๋กœ ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ๋“ค๋งŒ ๋ชจ์•„์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋งŒ์•ฝ ์กฐ๊ฑด์— ๋ถ€ํ•ฉ๋˜๋Š” ์š”์†Œ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋ฉด ๋นˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
filter() ๋ฉ”์„œ๋“œ๋„ map() ๋ฉ”์„œ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํฌ๊ฒŒ filter(callbackFunction, thisAgr) 2๊ฐœ์˜ ์ธ์ž๋ฅผ ๊ฐ€์ง„๋‹ค.

callbackFunction ์•ˆ์—์„œ 3๊ฐœ์˜ ์ธ์ž (element, index, array) ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ ์ฒซ๋ฒˆ์งธ ๋ถ€๋ถ„์ธ element ์ธ์ž๋งŒ ํ•„์ˆ˜๋กœ ์ง€์ •๋˜์–ด์•ผํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์„ ํƒ์ ์ด๋‹ค.

let fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];

function filtered () {
  let result = fruits.filter(fruits => fruits.includes('ap'));
  return result;
}
console.log(filtered());
let courses = [
{level:'easy', subject: "English" }, 
{level:'hard', subject: "Mathmatic" }, 
{level:'medium', subject: "Literature" }, 
{level:'hard', subject: "Science" }, 
{level:'medium', subject: "Socialogy" }
];

function filtered(){
  let hardWord = courses.filter(courses => courses.level ==='hard');
  return hardWord;
}
console.log(filtered());

value > 10 ์ด๋ผ๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ๋“ค๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์—ˆ๋‹ค.

let numbers = [10, 4, 32, 17, 5, 2];

// ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ• (filter()์˜ ์ธ์ž์—์„œ ๋ฐ”๋กœ ํ•จ์ˆ˜๋ฅผ ์จ์ฃผ๋Š” ๋ฐฉ๋ฒ•) 
let result = numbers.filter((value)=> value > 10);

console.log(result);      // [ 32, 17 ]

// ๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ• (๋ฐ–์—์„œ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  filter()์ธ์ž์—์„œ callbackํ•˜๋Š” ๋ฐฉ๋ฒ•) 
function isBiggerThanTen (value) {
    return value > 10;
}

let result = numbers.filter(isBiggerThanTen);

console.log(result);      // [ 32, 17 ]

๐Ÿ“Œ 5. ๋ฐฐ์—ด ์•ˆ ๋ฐฐ์—ด

let camille = ['Ca','Miile',[1,2,3,4,5],true,false]
console.log(camille[2]);
< [1, 2, 3, 4, 5]

์—ฌ๊ธฐ์„œ, ๋ฐฐ์—ด์•ˆ์— ์žˆ๋Š” ๋ฐฐ์—ด ์ž์ฒด๊ฐ€ 2๋ฒˆ์งธ ์š”์†Œ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

โœ” ๋ฐฐ์—ด์•ˆ์— ๋ฐฐ์—ด์— ์ ‘๊ทผํ•˜๊ธฐ

let camille = ['Ca','Miile',[1,2,3,4,5],true,false]
console.log(camille[2][0]);
<1

์ค‘์ฒฉ๋œ ๋ฐฐ์—ด ! ์—ฌ๊ธฐ์„œ ๋ฐฐ์—ด์•ˆ์˜ ํ˜ธ์ถœ๋œ ์š”์†Œ๋Š” ๋Œ€๊ด„ํ˜ธ๋Š” ์—†์ด 1ํ•˜๋‚˜๊ฐ€ ๋‚˜์˜จ๋‹ค.

๐Ÿ“Œ 6. ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ํ™œ์šฉํ•œ ๊ทœ์น™ ์ƒ์„ฑ

let camille = ['Ca','Miile',[1,2,3,4,5],true,false]
console.log(camille[camille.length-1]);
<false

๐Ÿ”” camille.length-1 ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ์—„์ฒญ ๊ธธ๊ฑฐ๋‚˜ ํ•˜๋ฉด, ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ ์–ป๊ธฐ์— ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ๊ทœ์น™์„ ํ™œ์šฉํ•ด ์‹์„ ๋งŒ๋“ค์–ด ์ ์šฉํ•˜๋ฉด ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์–ธ์ œ๋“  ํ”„๋ฆฐํŠธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฐ์—ด์˜ ์ด๊ธธ์ด -1 ํ•˜๋ฉด ๋งˆ์ง€๋ง‰ ์š”์†Œ์˜ ์ธ๋ฑ์Šค ๋„˜๋ฒ„์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ,
camille์ด๋ผ๋Š” ๋ฐฐ์—ด์— ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋Š”console.log(camille[camille.length-1]) ๋กœ ๋„์ถœํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€