전체 글
-
문자열과 숫자에 접근하는 방법들 2 : sort()JavaScript 2022. 9. 28. 19:14
sort( ) 는 만만해보이지만 정말이지 어려운 메서드이다. let strings = ["sun", "bed", "car"] let n = 1 console.log( strings.sort().sort((a,b) => a.charCodeAt(n) - b.charCodeAt(n)) ) // [ 'car', 'bed', 'sun' ] 1번째 인덱스의 문자 기준으로 sort 오름차순 정렬. 문자를 빼기 위해 유니코드 변환을 했다. let s = "Zbcdefg" let n = [...s] console.log(n) / ['Z', 'b', 'c','d', 'e', 'f','g'] console.log( n.sort((a,b) => b.charCodeAt(0)-a.charCodeAt(0)).join('') ) /..
-
배열에 접근하는 방법들2 : set(), map(), 배열의 중복제거JavaScript 2022. 9. 28. 18:52
배열에서 중복 없애기 : 조건문 노가다, set, filter 등 let arr = [1,1,3,3,3,0,0,1,1,1,1] function solution(arr) { let array = []; for(let i=0; i val != arr[index+1]); } set 은 순서에 상관 없이, 중복된 것을 배열에 담지 않는다. "Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있습니다." 라는 것이 mdn 문서의 표현이다. // foreach 로 돌리면서 검사 arr = ['Seoul','Busan','Jeju'] let isExistEoul = false; arr.forEach(item => { if (item=='Seoul') isExistSeoul = tru..
-
조건을 거는 방법들 1 : while, do while 등JavaScript 2022. 9. 28. 18:36
while 조건을 거꾸로 생각하기 쉽다. let num = 1 function solution(num) { if (num === 1){ return 0; }else{ let nom = num let count = 0 do { nom%2 === 0 ? nom/=2 : nom = nom*3 + 1; count+=1; if (count>=500){return -1}; // break 같은 거 안써도 되나? } while (nom!==1); // 내가 정반대로 구문을 알고 있었다. return count; } } console.log(solution(num)) // 0이 출력된다. num에 1 넣어놨잖아. function collatz(num) { var answer = 0; while(num !=1 && an..
-
문자열과 숫자에 접근하는 방법들 1 : +, isNan() 등JavaScript 2022. 9. 28. 17:29
더하기 연산자를 활용하는 방법 let s = "97 75 88 99 95 92 73"; let list = s.split(' ').map((el)=>+(el)); // 문자열을 공백 기준으로 나누어 배열을 만들고, 각 요소를 숫자로 바꾼다. const list = s.split(' ').map(Number) // let list = s.split(' ').map((el)=>+(el)); // 사실상 같은 코드이다. console.log(list) //[97, 75, 88, 99, 95, 92, 73] // 숫자로 된 배열 console.log(...list) // 97 75 88 99 95 92 73 // 그마저 스프레드 하면 숫자만 나온다. +를 앞에 붙이면 모두 숫자가 될 것만 같으나, 그렇지 않다...
-
배열에 접근하는 방법들 1 : forEach(), filterJavaScript 2022. 9. 28. 16:51
Array.prototype.forEach() 먼저 기억할 점은, forEach()는 메서드 체인에서 중간이 아니라 끝에 사용해야 한다는 것이다. 예컨대 map()이나 reduce()는 자신의 콜백을 적용할 수 없는 요소는 아예 명령으르 수행하지 않아 undefined가 반환되지 않는다. 그러나 forEach는 undefined를 반환한다. 메서드 체인 끝에서 side effect를 구현하는 용도로 활용하는 것이 적합하다. MDN 예시 : 화살표 형태 const array1 = ['a', 'b', 'c']; array1.forEach(element => console.log(element)); // expected output: "a" // expected output: "b" // expected ou..
-
set()JavaScript/입 속의 검은 잎 2022. 9. 28. 13:42
//기존배열 let arr = []; arr.push(1); arr.push(5); arr.push(5); console.log(arr) // [ 1, 5, 5 ] let set1 = new Set() set1.add(1) set1.add(5) set1.add(5) console.log(set1) // Set(2) { 1, 5 } // foreach 로 돌리면서 검사 arr = ['Seoul','Busan','Jeju'] let isExistEoul = false; arr.forEach(item => { if (item=='Seoul') isExistSeoul = true; }) //set의 내장함수로 검사 let arr2 = new Set(arr) console.log(arr2.has('Seoul'))..
-
문자열.charCodeAt(index)JavaScript/입 속의 검은 잎 2022. 9. 28. 00:30
35번과 36번 문자열 비교의 경우. function solution(strings, n) { return strings.sort().sort((a,b) => a.charCodeAt(n) - b.charCodeAt(n)) } -charCodeAt( index) 안의 index가 문자열의 그 index인 것이 헷갈렸었다. -제한조건, "n번째 문자열이 같을 때는 본래의 사전순서대로" 라는 조건을 구현하려 시도하다가... 대단히 헤맸다. 어디까지 갔다왔나 몰라. let s = "Zbcdefg" function solution(s) { let n = [...s] // ['Z', 'b', 'c','d', 'e', 'f', 'g'] return n.sort((a,b) => b.charCodeAt(0)-a.char..