10. 자바스크립트 배열

Lia·2023년 4월 24일
0

배열

다량의 데이터를 다루는 데이터 타입
배열순서는 index 이고 0부터 시작한다.

-주요 메서드들

.length = 배열의 길이

.pop() = 배열의 끝의 요소 삭제

.push() = 배열의 끝에 요소 추가

.shift() = 배열의 처음의 요소 삭제

.unshift() = 배열의 처음에 요소 추가

.slice() = 첫번째 인덱스부터 마지막인덱스 전까지 출력

Array.isArray = 배열인지 아닌지 판별
등등 메서드가 엄청많다!!!

배열 문제풀이

문제1)

임의의 값을 입력받아 타입을 리턴해야 합니다.

입력)
인자 1 : anything
임의의 값
출력)
string 타입을 리턴해야 합니다.
1
ex) 'string', 'number', 'boolean', 'object', 'array', 'undefined', 'null', 'function'

function getType(anything) {
  // TODO: 여기에 코드를 작성합니다.
  if (Array.isArray(anything)) {
    return 'array';
  } else if (anything === null) {
    return 'null';
  } else {
    return typeof anything;
  }
}
//테스트
let value = getType('안녕')
console.log(value);
value = getType(0)
console.log(value);
value = getType(true)
console.log(value);
value = getType({ name : 'Steve'})
console.log(value);
value = getType(function () {});
console.log(value);
value = getType(null);
console.log(value);
value = getType();
console.log(value);

//입력값이 배열인지 아닌지를 판단 -> if (Array.isArray(anything))
//배열인 경우 'array'를 반환 -> {return 'array';}
//그리고 입력값이 null인 경우 'null'을 반환 -> else if (anything === null) {return 'null';}
//마지막으로, typeof 연산자를 사용하여 입력값의 타입을 문자열형태로 반환
(number,boolean,string 같은) -> else {return typeof anything;}

문제2)

배열을 입력받아 배열의 모든 요소의 합을 리턴해야 합니다.

입력)
인자 1 : arr
number 타입을 요소로 갖는 배열
출력)
number 타입을 리턴해야 합니다.
주의 사항)
입력받은 배열이 빈 배열인 경우, 0을 리턴해야 합니다.

function computeSumOfAllElements(arr) {
  // TODO: 여기에 코드를 작성합니다.
    let sum = 0

for (let n = 0; n < arr.length; n++) {
    sum = sum + arr[n];
  }
    return sum;

}
//테스트
console.log (computeSumOfAllElements([2,23])); 

// 합을 나타낼 변수를 먼저 선언.
// for문을 사용하여 arr 배열의 모든 요소를 합함
// -> n은 인덱스값이 되는거라고 생각하면 될듯.
// 합한값을 return해줌

문제6)

문자열을 입력받아 문자열을 구성하는 각 단어를 요소로 갖는 배열을 리턴해야 합니다.

입력)
인자 1 : str
string 타입의 공백이 있는 문자열
출력)
배열을 리턴해야 합니다.
주의 사항)
반복문(for, while) 사용은 금지됩니다.
단어는 공백 한 칸으로 구분합니다.
연속된 공백은 없다고 가정합니다.

function getAllWords(str) {
  // TODO: 여기에 코드를 작성합니다.
  if (str === '') {
    return [];
  }

  return str.split(' ');
}
//테스트
console.log (getAllWords("얀녕 아아아 아아아"));

// 인자값이 만약 ''공백이라면 배열로 리턴을 해라
// 그렇지 않다면 인자값을 ' '공백문자로 분리하여 배열로 반환한다. split()

문제7)

문자열을 입력받아 문자열을 구성하는 각 문자를 요소로 갖는 배열을 리턴해야 합니다.

입력)
인자 1 : str
string 타입의 공백이 없는 문자열
출력)
배열을 리턴해야 합니다.
주의 사항)
str.split 사용은 금지됩니다.
빈 문자열을 입력받은 경우, 빈 배열을 리턴해야 합니다.

function getAllLetters(str) {
  let arr = [];
  for (let i = 0; i < str.length; i++) {
    arr.push(str[i]);
  }

  return arr;
}
//테스트
console.log (getAllLetters('안녕하세요.'));

//빈배열 arr 선언
//문자열 str의 길이만큼 반복문수행
//반복문에서 arr 배열에 str문자열의 각문자를 추가함 -> arr.push(str[i]);
// arr 반환

//for문 해석
// let i = 0 : 반복문에서 사용할 인덱스 변수 i를 0으로 초기화
// i < str.length : 인덱스 i가 문자열 str의 길이보다 작을 때까지 반복. 즉, 인덱스 i가 문자열의 마지막 인덱스까지 도달하면 반복이 종료됨
// i++ : 반복이 한 번 수행될 때마다 인덱스 i를 1 증가시킴 이렇게 함으로써 반복문이 문자열 str의 모든 문자에 대해 수행되도록 함
// arr.push(str[i]) : 문자열 str의 인덱스 i에 위치한 문자(str[i])를 배열 arr에 추가함

문제8)

배열을 입력받아 가장 큰 요소를 리턴해야 합니다.

입력)
인자 1 : arr
number 타입의 정수로 구성된 배열
출력)
number 타입을 리턴해야 합니다.

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

  return max;

}

//테스트
console.log(getLargestElement([22,4,44,2,3,3]));

// arr 배열의 첫번째 값을 0으로 초기화하여 max 변수선언
// arr에 입력될 인덱스값을 0으로 초기화하고 문자열만큼 반복하여 비교
// [22,4,44,2,3,3] 배열을 입력으로 받을 때, 초기 max값인 22와 배열의 다른 요소들을 비교하면서 max를 업데이트하는데,44보다 큰 수가 없으므로 max값은 44가 됨

profile
https://lia-portfolio.vercel.app/

0개의 댓글