자바스크립트 새롭게 이해한 부분들 짚고 넘어가기

김영진·2021년 2월 16일
0

Vanilla JavaScript_Basic

목록 보기
8/8
post-thumbnail

오늘은 제대로 이해하지 못하고 무심코 지나갔던 부분들을 짚고 넘어가 보려고 한다.

  • 홀수와 홀수 사이를 구분할 때 사용할 수 있는 조건문
if (Number(str[i - 1]) % 2 && Number(str[i]) % 2) 
  // str[i]와 str[i] 앞에 있는 숫자를 2로 나눈 나머지가 같으면...
  • 2차원 배열에서 위치 정보를 요소로 갖는 배열 리턴하기
for (let i = 0; i < arr.length; i += 1) {
  for (let j = 0; j < arr[i].length; j += 1) {
    if (arr[i][j] === 'B') {
      return [i, j];
    }
  }
} // 이중 for문을 돌려서 arr[0]에 있는 요소를 [j]로 arr의 길이만큼 돌고 ~ 이것을 반복해서 인덱스로 좌표를 구한다.
//위와 비슷한 케이스로 서로 다른 길이의 문장이 주어질 경우엔
for (let i = 0; i < arr.length; i ++) {
    if (longWord < arr[i].length) {
      longWord = arr[i].length;
    }
  }
for (let i = 0; i < longWord; i += 1){
  for (let j = 0; j < arr.length; j += 1){
    if (arr[j][i] !== undefined) {
     str += arr[j][i] 
    }
  }
}// 긴 문장을 먼저 for문 돌릴 수 있도록 해준다.
  • .sort()를 이용해 객체를 정렬하기
let items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'And', value: 45 },
  { name: 'The', value: -12 },
  { name: 'Magnetic', value: 13 },
  { name: 'Zeros', value: 37 }
];
// value 기준으로 정렬
items.sort(function (a, b) {
  if (a.value > b.value) {
    return 1;
  }
  if (a.value < b.value) {
    return -1;
  }
  // a must be equal to b
  return 0;
});
// name 기준으로 정렬
items.sort(function(a, b) {
  var nameA = a.name.toUpperCase(); // ignore upper and lowercase
  var nameB = b.name.toUpperCase(); // ignore upper and lowercase
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // 이름이 같을 경우
  return 0;
});
  • 수를 요소로 갖는 배열의 각 요소들이 그 이전의 요소들의 합보다 큰 지 여부를 알아야 할 때 등, 누적을 해야될 경우
let sum =arr[0]; // 누적될 첫번째 요소를 변수로 선언해 주고
for (let i = 1; i < arr.length; i++) {
    if (sum >= arr[i]) { // 그 다음 요소부터 저장해둔 변수와 비교하여 값이 크면 false를
      return false; 
    }
    sum = sum + arr[i] //아닐 경우 계속 첫번째 요소에 누적해 주도록 구성한다.
  }
profile
UI개발자 in Hivelab

0개의 댓글