TIL 15_JavaScript 'Array & Math'

dudgus5766·2021년 7월 18일
2

JavaScript

목록 보기
8/14
post-thumbnail

이 글은 인프런에서의 'Javascript 비기너' 강의와 https://poiemaweb.com/ 에서의 빌트인 오브젝트 관련 내용을 참고하여 작성함.

Array

Array는 1개의 변수에 여러 개의 값을 순차적으로 저장할 때 사용한다. 자바스크립트의 배열은 객체이며 유용한 내장 메소드를 포함하고 있다.

예시

0개 이상의 값을 쉼표로 구분하여 대괄호([])로 묶는다.
첫번째 값은 인덱스 ‘0’으로 시작한다.

const emptyArr = [];

console.log(emptyArr[1]); // undefined
console.log(emptyArr.length); // 0

const arr = [
  'zero', 'one', 'two', 'three', 'four',
  'five', 'six', 'seven', 'eight', 'nine'
];

console.log(arr[1]);      // 'one'
console.log(arr.length);  // 10
console.log(typeof arr);  // object

배열 삭제

배열은 객체이기 때문에 배열의 요소를 삭제하기 위해 delete 연산자를 사용할 수 있다. 이때 length에는 변함이 없다. 해당 요소를 완전히 삭제하여 length에도 반영되게 하기 위해서는 Array.prototype.splice 메소드를 사용한다.

const numbersArr = ['zero', 'one', 'two', 'three'];

// 요소의 값만 삭제된다
delete numbersArr[2]; // (4) ["zero", "one", empty, "three"]
console.log(numbersArr);

요소 값만이 아니라 요소를 완전히 삭제하려면 splice 메소드를 사용해야 한다.

const numbersArr = ['zero', 'one', 'two', 'three'];
//splice(시작 인덱스, 삭제할 요소수)
numbersArr.splice(2, 1); // (3) ["zero", "one", "three"]
console.log(numbersArr);

Array 메소드(method)

  • Array.prototype.indexOf

    원본 배열에서 인수로 전달된 요소를 검색하여 인덱스를 반환한다.
const arr = [1, 2, 2, 3];

// 배열 arr에서 요소 2를 검색하여 첫번째 인덱스를 반환
arr.indexOf(2);    // -> 1

// 두번째 인수는 검색을 시작할 인덱스이다. 두번째 인수를 생략하면 처음부터 검색한다.
arr.indexOf(2, 2); // 2

배열에 없는 요소를 파라미터에 적을 경우 -1을 반환한다.

  • Array.prototype.join

    원본 배열의 모든 요소를 문자열로 변환한 후, 인수로 전달받은 값, 즉 구분자로 연결한 문자열을 반환한다. 구분자는 생략 가능하며 기본 구분자는 ,이다.
const arr = [1, 2, 3, 4];

// 기본 구분자는 ','이다.
// 원본 배열 arr의 모든 요소를 문자열로 변환한 후, 기본 구분자 ','로 연결한 문자열을 반환
let result = arr.join();
console.log(result); // '1,2,3,4';

// 원본 배열 arr의 모든 요소를 문자열로 변환한 후, 빈문자열로 연결한 문자열을 반환
result = arr.join('');
console.log(result); // '1234'
  • Array.prototype.push / .pop

    pushpop은 인수로 전달받은 값을 원본 배열의 마지막에 요소로 추가, 삭제하고 변경된 length 값을 반환한다.
const arr = [1, 2];

// 인수로 전달받은 모든 값을 원본 배열의 마지막에 요소로 추가하고 변경된 length 값을 반환한다.
let result = arr.push(3, 4);
console.log(result); // 4
console.log(arr); // [1, 2, 3, 4]

// 원본 배열에서 마지막 요소를 제거하고 제거한 요소를 반환한다.
let result = arr.pop();
console.log(result); // 3
console.log(arr); // [1, 2, 3]
  • Array.prototype.shift()

    배열에서 첫요소를 제거하고 제거한 요소를 반환한다.
const arr = [];

arr.push(1); // [1]
arr.push(2); // [1, 2]
arr.push(3); // [1, 2, 3]

arr.shift(); // [2, 3]
arr.shift(); // [3]
arr.shift(); // []



Math

Math는 수학 상수와 함수를 위한 프로퍼티와 메소드를 제공하는 빌트인 오브젝트이다.

Math 메소드(method)

  • Math.abs

    인수의 절댓값(absolute value)을 반환한다.

  • Math.round

    인수의 소수점 이하를 반올림한 정수를 반환한다.

  • Math.ceil

    인수의 소수점 이하를 올림한 정수를 반환한다.

  • Math.floor

    인수의 소수점 이하를 내림한 정수를 반환한다. Math.ceil의 반대 개념이다.

Math.floor(1.9);  // 1
Math.floor(9.1);  // 9
Math.floor(-1.9); // -2
Math.floor(-9.1); // -10
Math.floor(1);    // 1
Math.floor();     // NaN
  • Math.random()

    임의의 부동 소수점을 반환한다. 반환된 부동 소수점은 0부터 1 미만이다. 즉, 0은 포함되지만 1은 포함되지 않는다.
Math.random(); // 0 ~ 1 미만의 부동 소수점 (0.8208720231391746)

📖 1 ~ 10에서의 랜덤 정수를 취득하려면?

// 1) Math.random로 0 ~ 1 미만의 부동 소수점을 구한 다음, 10을 곱해 0 ~ 10 미만의 부동 소수점을 구한다.
// 2) 0 ~ 10 미만의 부동 소수점에 1을 더해 1 ~ 10까지의 부동 소수점을 구한다.
// 3) Math.floor으로 1 ~ 10까지의 부동 소수점의 소수점 이하를 떼어 버린 다음 정수를 반환한다.
const random = Math.floor((Math.random() * 10) + 1);
console.log(random); // 1 ~ 10까지의 정수
  • Math.max / .min

    인수 중에서 가장 큰 수와 가장 작은 수를 반환한다.
Math.max(1, 2, 3); // 3
Math.min(1, 2, 3); // 1
profile
RN App Developer

0개의 댓글