코드스테이츠_2주차_금

윤뿔소·2022년 9월 2일
0

CodeStates

목록 보기
10/47
  • 배열에서 특정 인덱스(index)의 요소(element)를 조회하거나, 변경할 수 있음
  • length 속성을 이용하여 배열의 길이를 조회할 수 있음
  • 배열의 요소가 배열인 이중 배열을 이해하고, 이중 배열의 요소를 조회하거나 변경할 수 있음
  • 배열의 각 요소에 대하여, 반복하는 코드를 실행시킬 수 있음
    +split(), join(), slice(), splice(), Array.isArray(), push(), unshift(), pop(), shift(), indexOf(), includes(), concat()

배열

순서가 있는 값(index), [index]로 조회, [0][1]...
변수 = [x, "x", ...]
배열 안 배열 데이터가 있다면 변수[0][2]로 조회 가능

배열 메소드

  • .XX로 이루어진 명령어
  • Array.XX로 쓰여져 있으면 Array 그대로 써줘도 됨, V는 Value
  • 사이트에 메소드도 있으니 같이 보면서 복습
  • 네이버 블로그 week5에도 있으니 같이 보며 참고
  • 항상 쓰던 .length 메소드도 문자열과 함께 배열 메소드의 대표임! 알아놓기

진위 여부

Array.isArray(arr)

배열 데이터인지 아닌지 불린 데이터 반환

arr.includes(V)

  • 값(Value)이 있는지 없는지 불린 데이터 반환
  • IE랑 호환 X;;

arr.indexOf(V)

  • 값이 있으면 인덱스 반환(number), 인덱스 값을 추출할 수 있어 더 구체적
  • 없으면 -1
  • indexOf로 includes처럼 쓸 수 있음 ㅋㅋㅋ
let words = ["Brown", "Black", "Yellow"];
function hasElement(arr, element) {
  let isPresent = arr.indexOf(element) !== -1; // if문도 가능
  return isPresent;
}
console.log(hasElement(words, "Brown"));
// true

원본 수정 메소드

arr.unshift(V), arr.shift()

  • 맨 앞에 배열 데이터 각각 추가, 제거
  • 원본 수정, 추가면 베열 데이터의 길이값(length) 반환(Number), 제거면 제거된 배열 데이터 값 반환

arr.push(V), arr.pop()

  • 맨 뒤에 배열 데이터 각각 추가, 제거
  • 원본 수정, 추가면 베열 데이터의 길이값(length) 반환(Number), 제거면 제거된 배열 데이터 값 반환

⭐️arr.splice(start, number(, V, V ...))

  • 원본 수정됨, start에서 number만큼 자름
  • 3번째 요소로 어떠한 문자열이나 숫자 등을 넣어 추가할 수도 있음
  • splice 자체는 잘랐던 배열 요소를 반환
  • 음수는 arr.length에 number를 더한 값임
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
let removed = myFish.splice(2, 0, 'drum', 'guitar');
// myFish = ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed = []
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
let removed = myFish.splice(-2, 1); // 음수: 4 + (-2) = 2번째 인덱스  
// myFish = ["angel", "clown", "sturgeon"]
// removed = ["mandarin"]
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
let removed = myFish.splice(2);
// myFish = ["angel", "clown"]
// removed = ["mandarin", "sturgeon"]

원본 미수정 메소드

변경해준 메소드에 값 할당 必

arr.join("배열간문자")

  • 배열 모든 요소를 연결, 하나의 문자열로 반환
let a = ['바람', '비', '불'];
let myVar = a.join();      // myVar = '바람,비,불'
myVar = a.join(', ');  // myVar = '바람, 비, 불'
myVar = a.join(' + '); // myVar = '바람 + 비 + 불'
myVar = a.join('');    // myVar = '바람비불'

arr1.concat(arr2)

배열과 배열을 합치는 메소드, arr1 배열 이후 arr2가 나오는 배열로 반환

arr1 = ["안녕", "나는"]
arr2 = ["뿔소란다", "잘 부탁해!"]
arr3 = arr1.concat(arr2);
console.log(arr3)
// ['안녕', '나는', '뿔소란다', '잘 부탁해!']

⭐️string.split(separator(, limit))

  • 문자열을 구분자로 기준 잡아 배열로 반환
  • separator 뒤에 limit을 붙여 배열을 만드는 데 제한을 둘 수 있음

⭐️str / arr.slice(start, fin)

  • start 이상 fin 미만 문자열 반환
  • 얕은 복사 가능, slice()만 써줘서 메모리 주소를 다르게 만들 수도 있음
  • fin 안써줘도 됨, 그러면 start부터 끝까지 짜름

배열의 반복

  • 인덱스의 번호를 0, 1, 2, 3 ...의 반복을 통해 활용가능함
  • 아래 코드는 배열 데이터 모두를 더하는 식으로 반복을 해주는 구조
let myNum = [10, 20, 40, 10];
let sum = 0;

for(i = 0; i < myNum.length; i++) {
	sum = sum + myNum[i];
}

for...of, for...in

  • of는 배열의 Value 값을 반환하는 연산자, 배열에서만 쓰임, 이터러블(배열, String, Map, Set 등의 반복가능한 객체) 데이터에서 많이 쓰임
arr = [1, 2, 3, 4, 5, 6]
let result = [];
for (let el of arr) { // arr의 Value 값 탐색
  if (el % 2 === 0) {
    result.push(el);
  }
}
console.log(result)
// [2, 4, 6]
  • in은 Key 값을 반환하는 연산자, 객체에서 많이 쓰임, 배열에서도 쓰일 수 있음, 근데 인덱스 값을 반환함(0, 1, 2)

피보나치

  • 코플릿 25번
  • 1번째, 2번째는 0, 1 고정이고 그다음 3번째부턴 자신보다 앞 2칸을 더해서 나온 수를 추가함. 0, 1, 1, 2, 3, 5, 8 ...
  • 피보나치 특성 상 배치된 순서를 이용해 계산해야함, 즉! 인덱스 값 필요!

코플릿

코플릿 9번

가장 큰 거, 작은 거 비교 코드를 작성할 때 하나를 기준 잡아 다음 거랑 비교해서 크면 교체, 작으면 그대로 하기

function getLargestElement(arr) {
  // TODO: 여기에 코드를 작성합니다.
  let greatest = arr[0]; // 기준 잡음
  for (i = 1; i < arr.length; i++) {
    if (greatest < arr[i]) {
      greatest = arr[i]
    }
  }
  return greatest
}

23 22 24

profile
코뿔소처럼 저돌적으로

0개의 댓글