javascript - 배열

JM·2022년 3월 19일
0
post-thumbnail

본 내용은 codeit 으로 javascript 를 공부하면 정리한 내용입니다

이제는 몇 일차 라는 의미가 무색하게 하루에 두 개를 올리고 있는 것 같다..
그래도 부족한 느낌이 든다.. 더 열심히 달려야지

오늘의 공부

  • 배열(Array)

배열(Array)

  • 객체를 사용하기보다 값(value)만 필요한 경우가 있기도 하다.
  • 배열도 객체의 한 종류이다!

배열 길이

  • 배열.length
  • 배열['length']

배열 값 추가

  • 배열[index] = 값
  • 만약 배열의 순서를 띄어 넘어 추가하면 undefined가 추가된다.

배열 삭제

  • delet 배열[index]를 사용하면 값만 사라지고 자리가 남아있다.
  • splice(startIndex, deleteCount, item)
  • 배열.splice(index) - index 이후 값들이 다 사라진다.
  • 배열.splice(1, 2) - 1번 인덱스부터 2개의 값을 지운다.
  • 배열.splice(1, 2, '1번추가', '2번추가') - 1번 인덱스부터 2개의 값(1번 포함 2개) 을 지우고 '1번추가', '2번추가'를 추가한다.
  • 배열.splice(1, 0, '값추가')를 하면 1번 인덱스 위치가 값이 삭제 되지 않고 추가할 수 있다.

shift

  • 배열의 첫 요소를 삭제

pop

  • 배열의 마지막 요소를 삭제

unshift

  • 배열의 첫 요소로 값 추가

push

  • 배열의 마지막 요소로 값 추가

indexOf

  • 특정 값의 인덱스를 찾으려면 indexOf를 사용하면 된다.
  • 포함 되어 있지 않으면 -1이 리턴된다.

lastIndexOf

  • 반대로 뒤에서부터 검색한다.
  • 포함 되어 있지 않으면 -1이 리턴된다.

include

  • 배열에서 특정 값이 있는지 확인
  • true, false를 반환한다.

reverse

  • 배열의 순서를 뒤집을 수 있다.

for...of 반복문

for (let element of Array){
	console.log(element);
}

for (let i = 0; i < influencer.length; i++){
	console.log(influence[i]);
}

다차원 배열(multidimensional array)

문제

배열 예제 1

문제: let numbers = [1, 2, 3, 5, 8, 9] 에서 짝수를 제거해라

나의 생각
=> 문제 풀기 위해 고민을 많이 했다!

  • 문제점:
    i 가 0이면 1을 제거하면 [1, 2, 3, 5, 8, 9] -> [2, 3, 5, 8, 9]
    i 가 1이면 3을 제거하면 [2, 3, 5, 8, 9] -> [2, 5, 8, 9]
    i 가 2이면 제거를 하지 않는다.
    i 가 3이면 0을 제거하면 [2, 5, 8]
    최종적으로 [2, 5, 8] 이 남게된다.!
for (let i = 0; i < numbers.length; i++){
	if (numbers[i] % 2 === 1){
    	numbers.splice(i, 1);
    }
}

모범답안

  • 앞당겨진 i를 다시 되돌려 놓아야한다.
for (let i = 0; i < numbers.length; i++){
	if (numbers[i] % 2 === 1){
    	numbers.splice(i, 1);
    	i--;
    }
}

배열 예제 2

  • 이 문제는 알아두면 좋을 것 같아서 적어 놨습니다.
function range(start, count, step) {
  let arr = [];

  for (let i = 0; i < count; i++) {
    arr.push(start + i * step)
  }

  return arr;
}

배열 예제 3

  • 문제 설명
    • 배열 안의 값 숫자 개수
    • votes가 ['장태환', '신성순', '신성순', '장태환', '장태환']이면 voteCounter는 {'장태환': 3, '신성순': 2}
  • 생각 point
    - 빈 배열 안에 먼저 값을 넣어 줘야한다.
    • undefined를 활용하기
let voteCounter = {};

// votes 배열을 이용해서 voteCounter 객체를 정리하기
for (let name of votes) {
  if (voteCounter[name] === undefined){
    voteCounter[name] = 1;
  } else{
    voteCounter[name] += 1;
  }
}

배열 예제 4

  • 나는 하드 코딩으로 풀었다...
  • 소프트 코딩으로 푸는 것이 좋다.

나의 답안

for (let value of groups){
  teams[0].push(value[0]);
  teams[1].push(value[1]);
}

모범 답안

  • 조금 더 생각해서 풀어보자...
for (let j = 0; j < teams.length; j++){
  console.log(j)
  for (let i = 0; i < groups.length; i++){
    console.log(i)
    teams[j][i] = groups[i][j];
  }
}
profile
초조해하지 말자! 나는 충분히 할 수 있다! 인생은 길다!

0개의 댓글

관련 채용 정보