[JS] CDT 로 배우는 Javascript 기능과 기술들 [14.0]

김현수·2023년 10월 23일
0

cdt

목록 보기
14/51


📰 Coding Test 에서 익히는 javscript 기능과 기술 등


isNaN 은 ?

const alpha = "abc";
const num = 21;

console.log(isNaN(alpha)); // true
console.log(isNaN(num)); // false

Array 의 정규표현식으로 "split"

  • D는 non-digit을 의미, 숫자가 아닌 모든 문자
  • +는 직전의 문자나 그룹이 하나 이상 연속으로 나타나는 경우와 일치
  • \D+는 숫자가 아닌 문자가 하나 이상 연속으로 나타나는 모든 부분 문자열과 일치
const str = "ab123c12ad442dcccAWE2";
const nums_1 = str.split(/\D+/); // 숫자만
const nums_2 = str.split(/["A-Za-z"]/g); // 영어 대소문자 제외

console.log(nums_1); // [123,12,442,2]
console.log(nums_2); // [123,12,442,2]

안전지대 ( 프로그래머스 )

function solution(board) {

    let outside = [[-1,0], [-1,-1], [-1,1], [0,-1],[0,1],[1,0], [1,-1], [1,1]];
    let safezone = 0;

    board.forEach((row, y, self) => row.forEach((it, x) => {
        if (it === 1) return false;
        return outside.some(([oy, ox]) => !!self[oy + y]?.[ox + x])
               ? false : safezone++;
    }));

    return safezone;
}
각 배열 요소는 0 또는 1의 값을 가짐

outside : 주어진 좌표를 중심으로 하는 주변 좌표의 
          오프셋(즉, 상대적인 위치)을 나타냄

safezone : 1로 둘러싸여 있지 않은 0의 개수를 저장하기 위한 변수

board.forEach : 배열의 모든 요소를 순회하면서 다음 작업을 수행

	ㄴ> 현재 요소의 값이 1이면, 
       해당 위치는 안전 지대가 아니므로 return false 
        
	ㄴ> outside 배열의 모든 오프셋을 이용하여 
       주어진 좌표 주변의 값들을 확인하고, 
       주변에 1이 하나라도 있으면 해당 위치는 안전 지대 X
       주변에 1이 없으면 safezone을 1 증가

Array 의 some

  • 배열의 어떤 요소가 주어진 판별 함수를 만족하는지 테스트
  • 만약 하나라도 만족하는 요소가 있다면 true 를 반환하
  • 그렇지 않다면 false 를 반환
const array = [1, 3, 5, 7, 9];
console.log(array.some(num => num % 2 === 0));  // false
console.log(array.some(num => num > 6));        // true

!! 란?

  • 주어진 값을 불리언 값으로 변환
  • 첫 번째 !는 값을 반대의 불리언 값으로 변환
  • 두 번째 !는 그 값을 원래의 불리언 값으로 다시 변환
console.log(!!0);       // false
console.log(!!"hello"); // true
console.log(!!null);    // false
profile
일단 한다

0개의 댓글