[D+98] 항해99 11일차 (2) _매서드정리

한주간 진행 된 알고리즘주차가 마무리됐다.
그제 모의고사에서 리플잇으로 문제푸는 법을 약간 헤맸어서 자신감이 떨어진 상태였는데(그냥 콘솔만 밑에다 더 찍어주면 되는데 안쓰니까 그 쉬운것도 몰랐음) 오늘 봤던 시험 끝나자마자 잘보든 못보든 몸이 바로 늘어진다.😭 (후일담_알고리즘 테스트에 우리반 전원이 통과했다는 소식!! 멋져!🎊🎉🎊🎉)

오늘은 지난 일주일 간 알고리즘을 풀면서 30문제 정도를 풀면서 자주 사용했던 매서드를 정리하고자 한다.

  • indexOf
    배열, 문자열에서 쓰이는 위치를 찾아주는 함수_특정문자찾기
str.indexOf(찾고자하는 문자열[, 찾기 시작하는 위치를 나타내는 인덱스 값_옵션])
Math.pow(2, 3) // 2의3승
Math.sqrt(9); // 3
const a = [1, 2, 3];
console.log(a); // [1, 2, 3]

a.reverse();
console.log(a); // [3, 2, 1]
👉 예외
let str = parseInt('123가나다') ;
console.log( str ) ;
// 123

let str = parseInt('가나다123') ;
console.log( str ) ;
// NaN
👉 Number와 차이점
let test = '2020년도';
parseInt(test); // 2020
Number(test); // NaN

let test = '10.12345';
parseInt(test); // 10
Number(test); // 10.12345
parseFloat(test); // 10.12345
  • sort
    배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환
    기본 정렬 순서는 문자열의 유니코드 코드 포인트
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
=> ["Dec", "Feb", "Jan", "March"]

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
=> [1, 100000, 21, 30, 4]
👉 오름차순
function compareNumbers(a, b) {
  return a - b;
}

👉 내림차순
function compareNumbers(a, b) {
  return b - a;
}
  • split
    String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.
    str.split([separator[, limit_옵션]])
var myString = 'Hello World. How are you doing?';
var splits = myString.split(' ', 3);
console.log(splits);
=>["Hello", "World.", "How"]
  • Date
    1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이를 밀리초로 나타내는 정수 값을 담는다.
👉 getMonth() : 월 값을 현지 시간에 맞춰 반환 (월은 0부터 시작)
const moonLanding = new Date('July 20, 69 00:20:18');

console.log(moonLanding.getMonth()); 
// expected output: 6
👉 getDate() : 주어진 날짜의 현지 시간 기준 일을 반환
const birthday = new Date('August 19, 1975 23:15:30');
const date1 = birthday.getDate();

console.log(date1);
// expected output: 19
👉 getDay() : 주어진 날짜의 현지 시간 기준 요일을 반환 (0은 일요일)
const day1 = birthday.getDay();
// Sunday - Saturday : 0 - 6

console.log(day1);
// expected output: 2
👉 getFullYear() : 주어진 날짜의 현지 시간 기준 연도를 반환
const moonLanding = new Date('July 20, 69 00:20:18');

console.log(moonLanding.getFullYear());
// expected output: 1969
  • filter
    주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// expected ["exuberant", "destruction", "present"]
  • map
    배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환
const array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);
// [2, 8, 18, 32]
👉 예제1
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots는 [1, 2, 3]
// numbers는 그대로 [1, 4, 9]
👉 예제2
var kvArray = [{key:1, value:10},
               {key:2, value:20},
               {key:3, value: 30}];

var reformattedArray = kvArray.map(function(obj){
   var rObj = {};
   rObj[obj.key] = obj.value;
   return rObj;
});
// reformattedArray는 [{1:10}, {2:20}, {3:30}]
// kvArray는 그대로
// [{key:1, value:10},
//  {key:2, value:20},
//  {key:3, value: 30}]
  • Math.max
    입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환
console.log(Math.max(1, 3, 2));
// expected output: 3

console.log(Math.max(-1, -3, -2));
// expected output: -1

const array1 = [1, 3, 2];

console.log(Math.max(...array1));
// expected output: 3
  • Math.min()
    함수는 주어진 숫자들 중 가장 작은 값을 반환

  • Math.abs()
    주어진 숫자의 절대값을 반환
    x가 양수이거나 0이라면 x를 리턴하고, x가 음수라면 x의 반대값, 즉 양수를 반환

Math.abs('-1');     // 1
Math.abs(-2);       // 2
Math.abs(null);     // 0
Math.abs('');       // 0
Math.abs([]);       // 0
Math.abs([2]);      // 2
Math.abs([1,2]);    // NaN
Math.abs({});       // NaN
Math.abs('string'); // NaN
Math.abs();         // NaN
  • splice
    배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경
array.splice(start[, 제거할요소[, 추가할요소1[, 추가할요소2[, ...]]]])
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]

months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
  • slice
    어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환.
    원본 배열은 바뀌지 않음.
arr.slice([0을 시작으로 하는 추출 시작점 인덱스[, 추출을 종료 할 0 기준 인덱스]])
let fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
let citrus = fruits.slice(1, 3)

// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']
var maxCallback = ( acc, cur ) => Math.max( acc.x, cur.x );

// initialValue 없이 reduce()
[ { x: 22 }, { x: 42 } ].reduce( maxCallback ); // 42
[ { x: 22 }            ].reduce( maxCallback ); // { x: 22 }
[                      ].reduce( maxCallback ); // TypeError

[0, 1, 2, 3, 4].reduce(function(이전반환값/첫번째호출, 처리할현재요소, 처리할현재요소인덱스, reduce()를호출한배열) {
  return accumulator + currentValue;
});
[0, 1, 2, 3, 4].reduce( (prev, curr) => prev + curr );

좋은 웹페이지 즐겨찾기