programming(49)
-
비트 카운팅 알고리즘
내가 제출한 답 var countBits = function(n) { let result = []; let count = 0; while(n > 1){ result.push(n%2); n = Math.floor(n/2); } result.push(n); result.forEach((elem) => { if( elem === 1) count++; }); return count; }; 저리 간단한 걸 왜 더 어렵게 푼 것 같지. countBits = n => n.toString(2).split('0').join('').length; ---------------★문법 다시 체크----------------- 먼저, 숫자.toString(2)는 숫자를 2진수 문자열로 바꾼다. split('0')으로 문자열 안의..
2020.02.01 -
인피니트 스크롤 구현 공식
*** 인피니트 스크롤 시 *** 스크롤 값 document.documentElement.scrollHeight = 스크롤의 전체 높이(스크롤 쭉 내려셔 있는 하단까지의 높이) document.documentElement.clientHeight = 현재 보고있는 화면 높이(화면에 잡히는 높이) window.scrollY = Y축 스크롤 이동 값 (내가 스크롤 얼마나 내렸는지) 즉, document.documentElement.scrollHeight - 게시물 로드할 지점의 스크롤 값
2020.01.28 -
자주 사용하는 배열 메소드 -map,forEach,reduce,filter
반복 메서드는 배열의 모든 요소를 순회하면서 특정한 작업을 수행하거나, 특정 조건을 만족하는 요소를 가져올 때 사용한다. ★배열.map(function( 처리할 현재 요소, 현재 요소의 인덱스, 원본 배열){ /* 배열 요소 하나 하나에 실행할 로직 */ }); 배열 내의 모든 요소 각각에 대하여 주어진 함수 로직을 실행한 후, 그 결과를 모아 새로운 배열을 반환합니다. (map 메서드의 인수로 넘기는 함수는 무조건 결과를 반환해야 함 => return 문이 들어가야 함) callback 함수는 호출될 때 대상 요소의 값, 그 요소의 인덱스, 그리고 map을 호출한 원본 배열 3개의 인수를 전달받는데, 현재 요소 인덱스와 원본 배열은 옵션이다. 1 2 3 4 5 6 7 8 let array1 = [1, ..
2020.01.16 -
자주 사용하는 배열 메소드 - join,indexOf,slice,concat
접근자 메소드는 배열을 다른 형태로 가공한 새로운 배열을 반환하며, 원본 배열은 수정하지 않는다. 배열.join('구분자') 배열을 문자로 바꿔줌 (수정 메서드의 split과 반대기능) 1 2 3 4 5 6 7 8 let arrayJoin = ['my','name','is','javascript']; let resultJoin = arrayJoin.join('/'); console.log(resultJoin); //expected output: "a/b/c/d/e" //만약 그냥 구분자 없는 문자열로 만들고 싶을 경우 let resultJoin2 = arrayJoin.join(''); //expected output: "abcde" 배열.indexOf(data, index) 일치하는 문자(data)의 인..
2020.01.16 -
자주 사용하는 배열(Array) - pop,shift, push, unshift,split,splice,fill
수정 메소드는 원본 배열을 바로 수정하기 때문에 수정, 삭제, 추가 등이 원본 배열에 반영됨. pop() 배열의 마지막 부터 차례로 뽑고 뽑은 값을 반환한다. shift() 앞에서부터 뽑고 뽑은 값을 반환한다. push(값) 배열 맨 뒤로 값 입력하고 배열 길이를 반환한다. unshift(값) 값을 배열 앞에서 입력하고( 새로 들어온 값이 가장 앞에 위치 ) 배열길이를 반환한다. (최근 업데이트 된 것이 배열의 가장 앞에 옴, sns 피드 글 게시되는 것 생각하면 됨) 인자를 두개 넘겼을 때 첫번째 인자 먼저 삽입될 줄 알았는데, 아니었다. 인자로 넘긴 값을 배열이라고 생각하고 두 배열을 잇는다 생각해야겠다. 안그럼 헷갈릴 것 같다;; splice(시작점 , 제거할 원소 갯수, 새로 삽입할 값) 시작점 ..
2020.01.16 -
css transform
transform 이름에서 알 수 있듯이 형태를 변환하는 동작을 한다. 보통 기준점이 왼쪽 상단인 것에 비해 트랜스폼은 기준점을 요소의 중앙으로 잡는다. transform-origin를 사용해서 기준점 위치를 변경할 수 있다. 속성: left(0%), top(0%), center(50%), right(100%), bottom(100%) (키워드 대신 괄호 안의 숫자값도 넣을 수 있음) ex) transform-origin: left top; 또는 transform-origin: 0% 0%; 이렇게 하면 왼쪽 상단이 기준이 됨. 요소 형태 변화가 다른 요소들의 위치나 형태에 영향을 주지 않는다. cf) width와 height에 값을 줘서 형태에 변화를 주면 변한 만큼 주변 요소들의 위치에도 영향을 미치는..
2019.11.01