[Javascript] 배열/문자열/숫자 관련 함수

한별·2024년 2월 10일

Javascript

목록 보기
11/25

⭐ 배열

조회

const arr = [1, 2, 3, 4, 5];
arr[0] // 1
arr[arr.length-1] // 5
arr[-1] // undefined
arr[5] // undefined

추가

  • push(value): 배열의 끝에 value를 추가
  • unshift(value): 배열의 앞에 value를 추가
  • splice(index, 0, value1, value2, ...): index에서 0개의 원소를 삭제한 후, value1, value2, ...를 넣음
const arr = [0, 1, 2]
arr[3] = 3 // [0, 1, 2, 3]
arr[5] = 5 // [0, 1, 2, 3, empty, 5]

const arr = [0, 1, 2]
arr.push(3) // [0, 1, 2, 3]

const arr = [0, 1, 2]
arr.unshift(-1) // [-1, 0, 1, 2]

const arr = [0, 1, 2]
arr.splice(1, 0, 'a', 'b') // [0, 'a', 'b', 1, 2]

⚠️ 주석은 return 값이 아닌 arr 값입니다

splice(start, deleteCount, ...items)

삭제

  • pop(): 배열의 끝에서 원소를 삭제, 삭제된 값 return
  • shift(): 배열의 앞에서 원소를 삭제, 삭제된 값 return
  • splice(index, num, value1, value2): index에서 num개의 원소를 삭제한 후, value1, value2, ...를 넣음
  • filter 함수
const arr = [0, 1, 2]
arr.length = arr.length - 1
arr // [0, 1]

const arr = [0, 1, 2]
arr.pop() // 2
arr // [0, 1]

const arr = [0, 1, 2]
arr.shift() // 2
arr // [1, 2]

const arr = [0, 1, 2]
arr.splice(1, 2, 'a', 'b') // [1, 2]
arr // [0, 'a', 'b']

길이

const arr = [1, 2, 3, 4, 5];
arr.length; // 5

sort

원본 배열이 정렬된다.

const arr = [5, 3, 4, 2, 1];
arr.sort((a, b) => a - b);
console.log(arr); // [1, 2, 3, 4, 5]

⚠️ 그냥 sort()만 쓰면 문자열 사전순으로 정렬된다.
[1, 10, 2, 3, 4, 5, 6, 7, 8, 9]

fill

배열 특정 숫자로 채우기
fill(value, start, end)
start 인덱스부터 end-1까지 value로 배열 값을 채움

const arr = [1, 2, 3, 4];

console.log(arr.fill(0, 2, 4)); // [1, 2, 0, 0]
arr.fill(5, 1); // [1, 5, 5, 5]
arr.fill(6); // [6, 6, 6, 6]

slice

배열 자르기

const arr = [0, 1, 2, 3, 4];
arr.slice(1, 3) // [1, 2]

특정 값 포함 여부

includes(value, fromIndex): fromIndex 인덱스부터의 배열에서 value 원소의 포함 여부를 return

const arr = [1, 2, 3, 4, 5];
arr.includes(1) // true
arr.includes(1, 1) // false
arr.includes(6) // false

배열 뒤집기

const arr = [0, 1, 2]
arr.reverse() // [2, 1, 0]

중복 제거

const arr = [1,1,2,2,3,3]
const set = [...new Set(arr)]

set // [1,2,3]

map

배열의 원소들을 함수의 return 값으로 변경함

const arr = [1, 2, 3, 4, 5];
arr.map(e => e * 2) // [2, 4, 6, 8, 10]

filter

배열의 원소 중 조건에 맞는 원소들만 걸러냄

const arr = [1, 2, 3, 4, 5];
arr.filter(e => e > 2); // [3, 4, 5]

every & some

  • every: 배열 내의 모든 원소가 조건을 만족하는지를 return
  • some: 배열 내의 원소 중 조건을 만족하는 원소가 1개라도 있는지를 return
const arr = [1, 2, 3, 4, 5];
arr.every(e => e > 1); // false
arr.every(e => e >= 1); // true
arr.some(e => e > 1); // true

find & findIndex

  • find: 조건을 만족하는 첫번째 원소, 만족하는 원소가 없는 경우 undefined를 return
  • findIndex: 조건을 만족하는 첫번째 원소의 인덱스, 만족하는 원소가 없는 경우 -1를 return
const arr = [5, 3, 4, 2, 1];
arr.find(e => e < 4); // 3
arr.findIndex(e => e < 4); // 1

reduce

배열의 각 요소를 순회하며 callback 함수의 실행 값을 누적하여 반환

reduce(callback[, initialValue])

  • callback
    • callback 함수의 parameter는 acc, cur[, idx, arr]이다.
  • initialValue
    • acc의 초기값이다.
    • 주어지지 않은 경우 배열의 첫 번째 값을 사용하고 두번째 값부터 순회한다.
const arr = [1, 2, 3, 4, 5];
arr.reduce((acc, cur, idx, arr) => acc + cur, 0) // 15

문자열로 변환

const arr = ['a', 'b', 'c'];
arr.join('') // 'abc'
arr // ['a', 'b', 'c']

배열 여부

Array.isArray([1, 2, 3]); // true
Array.isArray(1); // false

⭐ 문자열

길이

배열과 같은 방법으로 구할 수 있다. 문자열.length

const str = "123";
str.length; // 3

포함 여부

배열과 같은 방법으로 구할 수 있다. 문자열.includes()

const str = "123";
str.includes(3) // true
str.includes(4) // false

문자열 일부 찾기

  • indexOf(findStr): findStr이 처음 나온 index를 return
  • lastIndexOf(findStr): findStr이 마지막에 나온 index를 return
const str = 'abcabc'
str.indexOf('bc') // 1
str.lastIndexOf('bc') // 4

문자열 일부 교체

const str = 'abcabc'
str.replaceAll('b', 'B') // 'aBcaBc'
console.log(str) // 'abcabc'

반복

const str = 'abc'
str.repeat(2); // 'abcabc'

자르기

substring(startIndex, endIndex)

const str = '01234567'
str.substring(4) // '4567'
str.substring(0, 4) // '0123'

split()

활용법 1) 배열로 변환
활용법 2) 문자열에서 특정 원소의 개수 구하기

const str = 'a,b,c'
str.split(',').length - 1 // 2 - ',' 개수

대소문자 변환

const str = 'Hello LHB'
str.toUpperCase() // 'HELLO LHB'
str.toLowerCase() // 'hello lhb'

배열로 변환

두 가지 방법이 있다.

const str = '123';
str.split('') // ['1', '2', '3']
[...str] // ['1', '2', '3']

아스키코드로 변환

const str = "ABC";
str.charCodeAt(0); // 65

⭐ 숫자

제곱근

Math.sqrt(9) // 3

반올림

Math.round(5.5) // 6

고정 소수점

0.1111111.toFixed(3) // '0.111'

n진수

  • num.toString(digit): 10진수 numdigit진수로 변환
  • parseInt(num, digit): digit진수인 num을 10진수로 변환
const num = 10
num.toString(2) // '1010'
parseInt(num, 2) // 2

숫자 여부

NaN: Not a Number
따라서, 숫자면 false, 아니면 true를 return

isNaN(5) // false
isNaN('5') // false
isNaN('a1') // true

정수 여부

Number.isInteger(5) // true
Number.isInteger('5') // false

참고 자료

[JS] JS로 코딩테스트 처음 준비하면서 알게된 함수, 팁 | cu.log
[JavaScript] 배열관련 메서드(sort, filter, every, some, find, findIndex, includes) - develaniper-devpage
[JavaScript] 자바스크립트 배열 추가, 삭제 방법 (push, pop, splice) | 젠트의 프로그래밍 세상

profile
글 잘 쓰고 싶어요

0개의 댓글