기술 블로그

[JS] 알고리즘을 위한 js - 1 배열 본문

알고리즘

[JS] 알고리즘을 위한 js - 1 배열

jaegwan 2023. 11. 13. 21:24
반응형
let a = [3, 1, 6, 2, 4, 8, 10, 5, 11, 7, 9];
a.sort(compareNumber);
console.log(a);
function compareNumber(i, j) { return i - j; }

Math

반올림,올림,내림

Math.round(실수)
Math.ceil(실수)
Math.floor(실수)

 

 

거듭제곱, 제곱근

Math.pow(2,3) =   2**3

console.log(Math.sqrt(9));

console.log(Math.pow(3, 5));
console.log(Math.sqrt(9));
//243
//3

 

 

최대 최소

console.log(Math.max(1, 2, 3, 4));
console.log(Math.min(1, 2, 3, 4));
//4
//1

 

 

배열 (!이 붙으면 부수효과가 있음)

arr.toString()

let a = [1, 2, 3];

console.log(a.toString());
//1,2,3

 

! arr.splice(삽입할 위치, 삭제할 항목 수, 삽입할 값 목록)

let a = [1, 2, 3];
console.log(a.splice(0, 1, 9, 8));

console.log(a);

//[ 1 ]
//[ 9, 8, 2, 3 ]

 

메서드 반환값은 삭제된 값을 반환하고 원본 배열은 수정된다.

 

arr.slice(시작 위치<= , <끝 위치)

let a = [1, 2, 3];
console.log(a.slice(1, 3));

console.log(a);

//[ 2, 3 ]
//[ 1, 2, 3 ]

 

부수효과를 일으키지 않으며 배열을 잘라서 반환한다.

slice(0)으로 배열을 복사할 수 있다.

 

 

! arr.unshift()

! arr.shift()

! arr.pop()

! arr.push()

덱과 같이 동작한다.

 

 

 

arr1.concat(arr2)

두 배열을 합친다.

let a = [1, 2, 3];
let b = [4, 5, 6];
console.log(a.concat(b));

 

! arr.sort()

오름차순으로 정렬하며 주의할점은 int형도 아스키를 기반으로 정렬되어 콜백함수를 지정해주는게 낫다.

let a = [3, 1, 6, 2, 4, 8, 10, 5, 11, 7, 9];
a.sort(compareNumber); 
console.log(a); 
function compareNumber(i, j) { return i - j; }

 

arr.toSorted()

오름차순으로 정렬한 값을 반환하며 부수효과가 없다.

arr.toSorted(function compareFn(a, b) { /* … */ })

 

! arr.reverse()

let a = [];
for (let i = 0; i < 5; ++i);
a.push(i);
a.reverse();
console.log(a)

 

arr.find()

let persons = [ { name: "홍길동", age: 16 }, { name: "임꺽정", age: 18 }, { name: "전우치", age: 19 } ]; 
let person = persons.find(p => p.age == 18);
console.log(person);

 

콜백함수 조건에 맞는 '값'이 반환된다.

 

arr.findIndex()

let persons = [ { name: "홍길동", age: 16 }, { name: "임꺽정", age: 18 }, { name: "전우치", age: 19 } ];
let index = persons.findIndex(p => p.age == 18);
console.log(index);

 

 

함수형 메서드

filter, reduce는 부수효과가 없다 .

반응형

'알고리즘' 카테고리의 다른 글

js heapq  (0) 2023.11.14
[JS] 알고리즘을 위한 js - 2 문자열과 순회문  (0) 2023.11.13
[프로그래머스] 조이스틱  (0) 2023.11.01
프로그래머스 체육복  (0) 2023.10.26
모의고사  (0) 2022.02.18
Comments