๐Ÿ’ป Javascript_๋ฌธ๋ฒ• 1-3(๊ฐ์ฒด, ๋ฐฐ์—ด)

๊น€์ง€ํ˜œยท2023๋…„ 6์›” 3์ผ
0

JS

๋ชฉ๋ก ๋ณด๊ธฐ
3/4

๊ฐ์ฒด, ๋ฐฐ์—ด (๊ธฐ์ดˆ)

๊ฐ์ฒด

1. ๊ฐ์ฒด ์ƒ์„ฑ

1-1. ๊ธฐ๋ณธ ๊ฐ์ฒด ์ƒ์„ฑ

let person = {
  name: "์ด๋ฆ„",
  age: 30,
  gender: "๋‚จ / ์—ฌ"
};
  • ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ : ์ค‘๊ด„ํ˜ธ({})๋ฅผ ์‚ฌ์šฉ
  • ์†์„ฑ๊ณผ ๊ฐ’ : ์ฝœ๋ก (:)์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž‘์„ฑ
  • ๊ฐ ์†์„ฑ๊ณผ ๊ฐ’ : ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„

1-2. ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ

function Person(name, age, gender) {
  this.name = name;
  this.age = age;
  this.gender = gender;
}

let person1 = new Person("A", 30, "๋‚จ์ž");
let person2 = new Person("B", 25, "์—ฌ์ž");

=> ์ƒ์„ฑ์ž ํ•จ์ˆ˜ Person()์„ ์‚ฌ์šฉ -> ๊ฐ์ฒด person1๊ณผ person2๋ฅผ ์ƒ์„ฑ
= ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ -> ๊ฐ์ฒด๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅ

2. ๊ฐ์ฒด ์†์„ฑ ์ ‘๊ทผ

let person = {
  name: "A",
  age: 30,
  gender: "๋‚จ์ž"
};

console.log(person.name);   // "A"
console.log(person.age);    // 30
console.log(person.gender); // "๋‚จ์ž"

=> ๊ฐ์ฒด person์˜ ์†์„ฑ์— ์ ‘๊ทผ -> ๊ฐ’์„ ์ถœ๋ ฅ
= ๊ฐ์ฒด์˜ ์†์„ฑ์— ์ ‘๊ทผํ•  ๋•Œ : ์ (.)์„ ์‚ฌ์šฉ -> ์†์„ฑ ์ด๋ฆ„์„ ์ž…๋ ฅ

3. ๊ฐ์ฒด ๋ฉ”์†Œ๋“œ

3-1. Object.keys() ๋ฉ”์†Œ๋“œ

let person = {
  name: "A",
  age: 30,
  gender: "๋‚จ์ž"
};

let keys = Object.keys(person);

console.log(keys);   // ["name", "age", "gender"]

=> Object.keys() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๊ฐ์ฒด person์˜ ์†์„ฑ ์ด๋ฆ„ -> ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
= Object.keys() ๋ฉ”์†Œ๋“œ -> ๊ฐ์ฒด์˜ ์†์„ฑ ์ด๋ฆ„ -> ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜

3-2. Object.values() ๋ฉ”์†Œ๋“œ

let person = {
  name: "A",
  age: 30,
  gender: "๋‚จ์ž"
};

let values = Object.values(person);

console.log(values);   // ["A", 30, "๋‚จ์ž"]

=> Object.values() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๊ฐ์ฒด person์˜ ์†์„ฑ ๊ฐ’ -> ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
= Object.values() ๋ฉ”์†Œ๋“œ : ๊ฐ์ฒด์˜ ์†์„ฑ ๊ฐ’ -> ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜

3-3. Object.entries() ๋ฉ”์†Œ๋“œ

let person = {
  name: "A",
  age: 30,
  gender: "๋‚จ์ž"
};

let entries = Object.entries(person);

console.log(entries);

=> Object.entries() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๊ฐ์ฒด person์˜ ์†์„ฑ ์ด๋ฆ„, ์†์„ฑ ๊ฐ’ -> 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
= Object.entries() ๋ฉ”์†Œ๋“œ๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ ์ด๋ฆ„, ์†์„ฑ ๊ฐ’๋“ค -> 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜

3-4. Object.assign() ๋ฉ”์†Œ๋“œ

let person = {
  name: "A",
  age: 30,
  gender: "๋‚จ์ž"
};

let newPerson = Object.assign({}, person, { age: 35 });

console.log(newPerson);   // { name: "A", age: 35, gender: "๋‚จ์ž" }

=> Object.assign() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ์ƒˆ๋กœ์šด ๊ฐ์ฒด newPerson ์ƒ์„ฑ
= Object.assign() ๋ฉ”์†Œ๋“œ : ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌ -> ์ƒˆ๋กœ์šด ๊ฐ์ฒด ์ƒ์„ฑ

3-5. ๊ฐ์ฒด ๋น„๊ต

let person1 = {
  name: "A",
  age: 30,
  gender: "๋‚จ์ž"
};

let person2 = {
  name: "A",
  age: 30,
  gender: "๋‚จ์ž"
};

console.log(person1 === person2);   // false
console.log(JSON.stringify(person1) === JSON.stringify(person2));   // true

=> ๋‘ ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ -> ๊ฐ์ฒด ๋น„๊ต
= ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•  ๋•Œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ === ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉX
-> ๋Œ€์‹  JSON.stringify() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด -> ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ -> ๋ฌธ์ž์—ด ๋น„๊ต

3-6. ๊ฐ์ฒด ๋ณ‘ํ•ฉ

let person1 = {
  name: "A",
  age: 30
};

let person2 = {
  gender: "๋‚จ์ž"
};

let mergedPerson = {...person1, ...person2};

console.log(mergedPerson);   // { name: "ํ™๊ธธ๋™", age: 30, gender: "๋‚จ์ž" }

= ๊ฐ์ฒด ๋ณ‘ํ•ฉํ•  ๋•Œ : ์ „๊ฐœ ์—ฐ์‚ฐ์ž(...) ์‚ฌ์šฉ

๋ฐฐ์—ด

1. ๋ฐฐ์—ด ์ƒ์„ฑ

1-1. ๊ธฐ๋ณธ์ ์ธ ๋ฐฐ์—ด ์ƒ์„ฑ

let fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"];

= ๋ฐฐ์—ด์„ ๋งŒ๋“ค ๋•Œ : ๋Œ€๊ด„ํ˜ธ([])
= ๊ฐ ์š”์†Œ : ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„

1-2. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ ์ง€์ •

new Array

let numbers = new Array(5);

=> ๋ฐฐ์—ด numbers(ํฌ๊ธฐ: 5)๋ฅผ ์ƒ์„ฑ

2. ๋ฐฐ์—ด ์š”์†Œ ์ ‘๊ทผ

let fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"];

console.log(fruits[0]);   // "์‚ฌ๊ณผ"
console.log(fruits[1]);   // "๋ฐ”๋‚˜๋‚˜"
console.log(fruits[2]);   // "์˜ค๋ Œ์ง€"

=> ๋ฐฐ์—ด fruits : ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ~ ์„ธ ๋ฒˆ์งธ ์š”์†Œ๊นŒ์ง€ ์ถœ๋ ฅ
= ๋ฐฐ์—ด์˜ ์š”์†Œ์— ์ ‘๊ทผํ•  ๋•Œ : ๋Œ€๊ด„ํ˜ธ([]) ์•ˆ -> ์ธ๋ฑ์Šค ๊ฐ’์„ ๋„ฃ์Œ

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

3-1. push() ๋ฉ”์†Œ๋“œ

let fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜"];

fruits.push("์˜ค๋ Œ์ง€");

console.log(fruits);   // ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"]

=> push() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด fruits์˜ ๋์— "์˜ค๋ Œ์ง€"๋ฅผ ์ถ”๊ฐ€
= push() ๋ฉ”์†Œ๋“œ -> ๋ฐฐ์—ด์˜ ๋์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€

3-2. pop() ๋ฉ”์†Œ๋“œ

let fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"];

fruits.pop();

console.log(fruits);   // ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜"]

=> pop() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ : ๋ฐฐ์—ด fruits์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์‚ญ์ œ
= pop() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์‚ญ์ œ

3-3. shift() ๋ฉ”์†Œ๋“œ

javascriptCopy code
let fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"];

fruits.shift();

console.log(fruits);   // ["๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"]

=> shift() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด fruits์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์‚ญ์ œ
= shift() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์‚ญ์ œ

3-4. unshift() ๋ฉ”์†Œ๋“œ

let fruits = ["๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"];

fruits.unshift("์‚ฌ๊ณผ");

console.log(fruits);   // ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"]

=> unshift() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด fruits์˜ ๋งจ ์•ž์— "์‚ฌ๊ณผ"๋ฅผ ์ถ”๊ฐ€
= unshift() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€

3-5. splice() ๋ฉ”์†Œ๋“œ

let fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"];

fruits.splice(1, 1, "ํฌ๋„");

console.log(fruits);   // ["์‚ฌ๊ณผ", "ํฌ๋„", "์˜ค๋ Œ์ง€"]

=> splice() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด fruits์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์‚ญ์ œ , "ํฌ๋„" ์ถ”๊ฐ€
= splice() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์‚ญ์ œ , ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€

3-6. slice() ๋ฉ”์†Œ๋“œ

let fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"];

let slicedFruits = fruits.slice(1, 2);

console.log(slicedFruits);   // ["๋ฐ”๋‚˜๋‚˜"]

=> slice() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด fruits์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋ถ€ํ„ฐ ์„ธ ๋ฒˆ์งธ ์š”์†Œ๊นŒ์ง€ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ฌ
= slice() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ถ„ -> ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ฌ.

3-7. forEach() ๋ฉ”์†Œ๋“œ

let numbers = [1, 2, 3, 4, 5];

numbers.forEach(function(number) {
  console.log(number);
});

=> forEach() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด numbers์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ถœ๋ ฅ
= forEach() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰

3-8. map() ๋ฉ”์†Œ๋“œ

let numbers = [1, 2, 3, 4, 5];

let squaredNumbers = numbers.map(function(number) {
  return number * number;
});

console.log(squaredNumbers);   // [1, 4, 9, 16, 25]

=> map() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด numbers์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ œ๊ณฑํ•œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ฌ
= map() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ -> ๊ฒฐ๊ณผ๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜

3-9. filter() ๋ฉ”์†Œ๋“œ

let numbers = [1, 2, 3, 4, 5];

let evenNumbers = numbers.filter(function(number) {
  return number % 2 === 0;
});

console.log(evenNumbers);   // [2, 4]

=> filter() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด numbers์—์„œ ์ง์ˆ˜๋งŒ ์ถ”์ถœํ•œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ฌ
= filter() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ -> ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ true์ธ ์š”์†Œ๋งŒ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜

3-10. reduce() ๋ฉ”์†Œ๋“œ

let numbers = [1, 2, 3, 4, 5];

let sum = numbers.reduce(function(accumulator, currentValue) {
  return accumulator + currentValue;
}, 0);

console.log(sum);

=> reduce() -> ๋ง์…ˆ?(๋ˆ„์‚ฐ๊ธฐ)
= (์ถ”ํ›„ ์ •๋ฆฌ)

3-11. find() ๋ฉ”์†Œ๋“œ

let numbers = [1, 2, 3, 4, 5];

let foundNumber = numbers.find(function(number) {
  return number > 3;
});

console.log(foundNumber);   // 4

=> find() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด numbers์—์„œ 3๋ณด๋‹ค ํฐ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ฐพ์Œ
= find() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰, ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ true์ธ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜

3-12. some() ๋ฉ”์†Œ๋“œ

let numbers = [1, 2, 3, 4, 5];

let hasEvenNumber = numbers.some(function(number) {
  return number % 2 === 0;
});

console.log(hasEvenNumber);   // true

=> some() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด numbers์—์„œ ์ง์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ (number % 2 === 0;)
= some() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰, ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ true์ธ ์š”์†Œ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š”์ง€ ํ™•์ธ

3-13. every() ๋ฉ”์†Œ๋“œ

let numbers = [2, 4, 6, 8, 10];

let isAllEvenNumbers = numbers.every(function(number) {
  return number % 2 === 0;
});

console.log(isAllEvenNumbers);   // true

=> every() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด numbers์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ง์ˆ˜์ธ์ง€ ํ™•์ธ
= every() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰, ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ true์ธ ์š”์†Œ๊ฐ€ ๋ชจ๋“  ์š”์†Œ์ธ์ง€ ํ™•์ธ

3-14. sort() ๋ฉ”์†Œ๋“œ

let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];

numbers.sort(function(a, b) {
  return a - b;
});

console.log(numbers);   // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

=> sort() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ -> ๋ฐฐ์—ด numbers๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
= sort() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ •๋ ฌ

3-15. reverse() ๋ฉ”์†Œ๋“œ

let numbers = [1, 2, 3, 4, 5];

numbers.reverse();

console.log(numbers);   // [5, 4, 3, 2, 1]

=> reverse() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด numbers์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š”๋‹ค(๋‚ด๋ฆผ์ฐจ์ˆœ?)
= reverse() ๋ฉ”์†Œ๋“œ : ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์—ญ์ˆœ ์ •๋ ฌ

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