TIL_19_with Wecode 009 JavaScript about array

JIEUNΒ·2021λ…„ 2μ›” 20일
0
post-thumbnail

πŸ±β€πŸ’»λ°°μ—΄μ˜ μ •μ˜ 및 νŠΉμ§•

  • 배열을 μ‚¬μš©ν•˜λ©΄ λͺ‡ 천 개의 λ³€μˆ˜λ₯Ό μƒμ„±ν•˜μ§€ μ•Šκ³ , ν•˜λ‚˜μ˜ λ³€μˆ˜μ— λͺ¨λ“  데이터λ₯Ό κ°–κ³  μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 배열은 λŒ€κ΄„ν˜Έ([])둜 감싸져 μžˆμŠ΅λ‹ˆλ‹€.

    데이터가 μžˆλŠ” 배열을 λ§Œλ“€μ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€.
let cities = ["μ„œμšΈ", "λŒ€μ „", "λŒ€κ΅¬", "λΆ€μ‚°", "κ΄‘μ£Ό", "μ œμ£Όλ„"];
let KOSPI = [2062.82, 2053.2, 2045.92, 2058.82, 2053.12, 2055.7];

  • Element: "μ„œμšΈ", "λŒ€μ „" κ³Ό 같은 λ°°μ—΄μ˜ κ°’, ν•˜λ‚˜ ν•˜λ‚˜λ₯Ό Element(μš”μ†Œ)라고 λΆ€λ¦…λ‹ˆλ‹€.
  • μš”μ†Œμ™€ μš”μ†Œ μ‚¬μ΄μ—λŠ” μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•©λ‹ˆλ‹€.
  • μš”μ†Œ μžλ¦¬μ—λŠ” μ΄μ œκΉŒμ§€ 배운 String, Number, Array λͺ¨λ‘ κ°€λŠ₯ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ)

    let anything = ["λŒ€μ „", 1987, ["ν•˜λ‚˜", "λ‘˜", 3]];

πŸ±β€πŸ’» λ°°μ—΄μ˜ Index

  • λ°°μ—΄μ˜ μš”μ†ŒλŠ” μˆœμ„œ(index)λ₯Ό κ°–κ³  μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όμ˜ν•΄μ•Ό ν•  νŠΉμ§•μ΄ μžˆλ‹€λ©΄ 이 πŸ‘β€πŸ—¨indexλŠ” 1이 μ•„λ‹ˆλΌ 0λΆ€ν„° μ‹œμž‘ν•©λ‹ˆλ‹€.
var anything = ["λŒ€μ „", 1987, ["ν•˜λ‚˜", "λ‘˜", 3]];
  • Stringν˜•μΈ "λŒ€μ „"은 indexκ°€ 0
  • Numberν˜•μΈ 1987은 indexκ°€ 1
  • Arrayν˜•μΈ ["ν•˜λ‚˜", "λ‘˜", 3]은 indexκ°€ 2μž…λ‹ˆλ‹€.

πŸ±β€πŸ’» λ°°μ—΄ λ°μ΄ν„°μ˜ μ ‘κ·Ό

  • indexλ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή λ°°μ—΄μ˜ μš”μ†Œλ₯Ό κ°€μ Έμ˜¬ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ‹œ)

    배열이름[index]
var anything = ["λŒ€μ „", 1987, ["ν•˜λ‚˜", "λ‘˜", 3]];
  • 예λ₯Όλ“€μ–΄, anything[0]은 "λŒ€μ „"μž…λ‹ˆλ‹€.
  • anything[1]은 1987μž…λ‹ˆλ‹€.
  • console.log둜 μš”μ†Œλ₯Ό 좜λ ₯ν•΄λ΄…μ‹œλ‹€.
console.log(anything[0]); //κ²°κ³ΌλŠ” "λŒ€μ „"
console.log(anything[1]); //κ²°κ³ΌλŠ” 1987
console.log(anything[2]); //κ²°κ³ΌλŠ” ["ν•˜λ‚˜", "λ‘˜", 3]
  • 이런 ν‘œν˜„λ„ κ°€λŠ₯ν•˜κ² λ„€μš”.
  alert(anything[0] + "에 μ˜€μ‹  것을 ν™˜μ˜ν•©λ‹ˆλ‹€.");
//κ²°κ³ΌλŠ” λŒ€μ „μ— μ˜€μ‹  것을 ν™˜μ˜ν•©λ‹ˆλ‹€.

πŸ±β€πŸ’» Assignment

  • getElement ν•¨μˆ˜μ•ˆμ— arr λ³€μˆ˜λ₯Ό μ„ μ–Έν–ˆμŠ΅λ‹ˆλ‹€.
  • arr λ³€μˆ˜λŠ” 배열을 ν• λ‹Ήν–ˆκ³ μš”, λ°°μ—΄μ—λŠ” λ‹€μ–‘ν•œ 데이터 νƒ€μž…μ˜ μš”μ†Œκ°€ λ“€μ–΄μžˆλ„€μš”!
  • 배열이 λ‹΄κΈ΄ arr λ³€μˆ˜μ— μ ‘κ·Όν•˜μ—¬ getElement ν•¨μˆ˜κ°€ "array" λΌλŠ” λ¬Έμžμ—΄μ„ return ν•  수 μžˆλ„λ‘ ν•΄μ£Όμ„Έμš”.
function getElement() {
  let arr = [3, [4, ["array", 9], 2+3], [0]];
  return [1],[1],[0];
}

풀이λ₯Ό 해보면,
return [1] = [4, ["array", 9], 2+3] 이 배열이 λ°˜ν™˜λ  것이고,
return [1] = ["array", 9] μœ„μ˜ λ°°μ—΄μ—μ„œ 첫번째 μˆœμ„œμ— μžˆλŠ” ["array", 9] κ°€ λ°˜ν™˜λ  것이고
return [0] = "array" 그럼 0번째인 "array"λ₯Ό λ°˜ν™˜μ‹œν‚€λ©΄ λ˜λŠ” 것이닀.
πŸ‘β€πŸ—¨indexλ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή λ°°μ—΄μ˜ μš”μ†Œλ₯Ό κ°€μ Έμ˜¬ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ₯Ό 잘 생각해보면, ν•΄λ‹Ή 인덱슀λ₯Ό ν†΅ν•˜μ—¬ μ›ν•˜λŠ” μš”μ†Œ 값을 ꡬ할 수 있게 λ˜λŠ” 것이닀.

  • addFirstAndLast ν•¨μˆ˜ μ•ˆμ— μž‘μ„±ν•΄μ£Όμ„Έμš”.
  • addFirstAndLast ν•¨μˆ˜μ— 주어진 인자 myArrayλŠ” 숫자 κ°’μœΌλ‘œλ§Œ 이루어진 array μž…λ‹ˆλ‹€.
  • addFirstAndLast ν•¨μˆ˜μ— 주어진 인자 myArray 의 첫번째 element와 λ§ˆμ§€λ§‰ element의 값을 λ”ν•œ 값을 λ¦¬ν„΄ν•΄μ£Όμ„Έμš”.
  • 만일 myArray에 ν•œ 개의 μš”μ†Œλ§Œ μžˆλ‹€λ©΄ ν•΄λ‹Ή μš”μ†Œμ˜ 값을 리턴해 μ£Όμ‹œκ³  μš”μ†Œκ°€ μ—†λŠ” λΉ„μ–΄μžˆλŠ” array라면 0을 λ¦¬ν„΄ν•΄μ£Όμ„Έμš”.
  • Hint) array의 길이λ₯Ό κ΅¬ν•˜λŠ” 방법은 λ‹€μŒμ„ μ°Έμ‘°ν•˜μ„Έμš”
    :array의 길이λ₯Ό κ΅¬ν•˜λŠ” 방법

처음 λ‚΄ λ‹΅λ³€:

function addFirstAndLast(myArray) {
if (myArray[myArray.length] === 0){
    return 0;
  } else if (myArray[myArray.length] === 1) {
  return myArray[0];
  } else {
   return myArray[0] + myArray[myArray.length];
 }
}

κ²°κ³ΌλŠ” μ‹€νŒ¨. 쑰건문을 μ—­μˆœμœΌλ‘œλ„ 해보고, λ§€κ°œλ³€μˆ˜ myArrayλ₯Ό μ•ˆμ“°κ³  myArray.length === 0; μ΄λŸ°μ‹μœΌλ‘œλ„ 써보고, κ²°κ³Όκ°€ λ‚˜μ˜¨λ‹€ μ‹ΆμœΌλ©΄ 계속 ν•œμžλ¦¬κ°€ 더 μΆ”κ°€λœ κ²°κ³Όκ°€ λ‚˜μ™”λ‹€.
예λ₯Ό λ“€μ–΄ addFirstAndLast([1,2]); μ΄λ ‡κ²Œ ν˜ΈμΆœν•˜λ©΄
κ²°κ³ΌλŠ” 3으둜, [1,2,1] addFirstAndLast([1,2,3,4,5]); 라고 ν˜ΈμΆœν•˜λ©΄ κ²°κ³ΌλŠ” 6으둜 [1,2,3,4,5,1].. λ§μ…ˆμ€ λ§žμ•˜μ„μ§€ λͺ°λΌλ„ μžλ¦Ώμˆ˜μ—μ„œ ν•œμžλ¦¬κ°€ ν”ŒλŸ¬μŠ€ λ˜λŠ” 결과둜, κ³„μ†ν•΄μ„œ 였λ₯˜κ°€ 났닀.

κ΅¬κΈ€λ§ν•œ 결과의 닡변은

function addFirstAndLast(myArray) {
 if(myArray.length === 0) {
   return 0;
 } else if(myArray.length === 1) {
   return myArray[0]; 
   //길이가 1이라면 맨 첫번째 index인 0을 λ¦¬ν„΄ν•˜λ©΄ λ˜λŠ” 것.
 } else {
   return myArray[0] + myArray[myArray.length-1];
 }
}
addFirstAndLast([1]);
//κ²°κ³ΌλŠ” 1
addFirstAndLast([0]);
//κ²°κ³ΌλŠ” 0
addFirstAndLast([1,2,3,4,5,10]);
//κ²°κ³ΌλŠ” 11

myArray.length === 0 이라고 μ“°λ©΄ λ˜μ—ˆκ³ ..
무엇보닀 myArray[myArray.length-1] 이것이 ν•΅μ‹¬μ΄μ—ˆλ‹€.
μ•„ 정말 생각보닀 κ°„λ‹¨ν•œ κ±°μ˜€λ‹€.
배열은 0λΆ€ν„° μ‹œμž‘ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.
πŸ‘β€πŸ—¨.lengthλŠ” λ°°μ—΄μ˜ 길이λ₯Ό λ°˜ν™˜ν•˜λŠ” 속성이며, 1λΆ€ν„° μ„ΈκΈ° μ‹œμž‘ν•œλ‹€.
κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λ°°μ—΄μ˜ λ§ˆμ§€λ§‰ μš”μ†Œμ˜ 값은 λ°°μ—΄μ˜ κΈΈμ΄μ—μ„œ -1을 ν•΄μ•Ό 찾을 수 μžˆλŠ” κ²ƒμ΄μ—ˆλ‹€..

MDN : Array.length
μ½”λ”©νŒ©ν† λ¦¬: .length

0개의 λŒ“κΈ€