중첩함수 사용
리턴에 바로 함수값 넣고 그 결과값 내보내고 싶을 땐 function을 사용서 써줘야 리턴을함
&& 연산자 사용 할 때
이런식으로 0 < angle && angle < 180 이렇게 사용해야함
filter를 사용함
return array.filter( v => v === n).length
나는 filter를 활용해서 배열을 만든 다음 그 배열들의 길이로 배열을 표현
이렇게 홀수이면 나머지 1값을 반환 배열의 인덱스로 포함하여 리턴도 가능
sort는 항상 a, b => a-b 이용하기
이렇게 한 개를 두고 옆에거에 따라 return하는 값이 다르게 하면 됨
내림차순이 아니라 배열을 뒤집으려면 reverse()를 쓰면됨
my_string = ['hello']
배열에서 각 문자를 주어진 n만큼 반복하는 것
split을 활용하여 문자열 hello의 각각을 배열에 담음
그 각각에 대한것을 repeat(n)을 활용하여 반복해서 acc에 넣어준 후 반환..
나는 조금 복잡하게 생각을 했던 것 같다
replaceAll 사용하면 좋음
특정 정수가 주어졌을 때 그 정수까지의 홀수만을 표기
나는 나머지가 1인 것들을 모아서 return 했지만
이렇게 그냥 그 정수 이전까지 i를 2씩 올려서도 가능
split('') (문자열) 활용
hello를 ["h", "e", "l", "l", "o"] 로 바꾸어줌
그 후 reverse를 통해 뒤집음 ["o", "l", "l", "e", "h"]
마지막으로 join을 통해 olleh를 반환
나는 map을 활용해서 map( v => v *2 ) 를 했지만
역시나 reduce를 활용해도 가능 했었다
이런식으로 [...a]를 통해 a의 값을 풀어준 다음 b*2 (각각의 요소들을 두 배해주어 반환)
([...a]해서 각 인덱스의 값을 b를 통해 반환)
my_string.split('')을 활용하여 hello를
["h", "e", "l", "l", "o"]로 만들어 준 후에
aeiou가 hello를 포함하고 있지 않은 애들로만
배열을 다시 구성한 후에 다시 문자열로 변환하여 내보내줌
즉, 비교대상.includes('찾을문자') -> 있으면 넣어주지 않고 없어야 새로운 배열에 넣어줌
s2와 s1을 비교해서 s1의 것이 s2에 들어가 있는 것만 새로 배열을 만들어주면 됨 filter활용
return s1.filter( v => s2.includes(v)).length
나는 split을 배열로 만든 후 정수끼리 연산이 가능한 애들만 모아서 다시 배열로 만들어줬음 // ["1", "2", "3", "4"]
그 후 반복문을 통해 하나씩 parseInt로 가져와 정수로 만든 다음 더해준 합계를 반환
하지만 이런식으로 스프레드 연산자로 배열로 만든 후
Number를 통한 형변환을 하여 형변환이 된 애들만을 모아서 반환
a = 1234
이런 애들의 총 자릿수 값을 더하는 것
당연히 배열로 ["1", "2", "3", "4"] 만들어 준 후
각각을 더하는 방법을 썼는데
헷갈리는 것이 한가기 발생
위에는 "1234"
아래는 10
을 반환 당연히도 그 이유는 지정하지 않으면 첫번쨰 애가 들어가는데 첫번째 애는 문자열이기 때문에 문자열 형식으로 더해지는 것
꼭 0을 넣어서 0부터 더하도록 지정
나는 Math.sqrt를 통해 제곱수인지 확인한 후
그의 정수부분으로 나누었을 때 나머지가 0이라면 1을 보냈는데
그럴 필요 없이
isInteger를 활용해서 정수인지 확인하면 됨
stinrg.charCodeAt(index)
해당하는 unicode값을 리턴
"cccCCC"란 문자열 데이터가 주어지면 이를 CCCccc로 변환하는 것
먼저 문자열을 리스트에 넣고
map을 통해 각의 아스키 코드값이 대문자이면 소문자로 소문자이면 대문자로 바꾸어 return
나는 먼저 split.('')을 통해 배열로 변환한 뒤 map을 통해 각 인자들을 가져온 후 삼항 연산자를 통해 비교해서 값을 넣어준 뒤 join('')을 통해 반환했다
하지만 이렇게 객체를 사용해서 객체의 키값에 해당하는 value들을 모아서 리턴하는 방식도 있음
잘보면 n (정수)를 제외하곤 2의 제곱수만큼 곱해지는 걸 볼 수 있음 그래서 pow를 활용해서 풀었음
나는 for문을 활용해서
function solution(n, t) {
for (i=1; i<=t; i++){
n = n*2
}
return n
}
이렇게 2를 계속 곱해준 것을 n으로서 활용함
ex n = 7이라면
7 =~ 14
14 =~ 28 ... 등등
나는 문자열을 split('')을 통해 배열에 넣어준 다음 filter를 통해 >= 0이상인 애들을 오름차순을 통해 배열에 넣어준 후
.map(Number)를 통해 문자열로 이루어진 배열을 숫자형으로 바꾸었다
이렇게 찍는 것인데
'*'.repeat(i) 를 활용하여 포문을 돌리면 됨
이번엔 음수까지 고려하는 상황이다 나는 Math.max를 쓰지 않고 3항 연산자로 풀었는데 당연히 max로 푸는 방법이 더 나을 것 같다
.splice를 사용해서 원하는 위치의 글자를 주어진 값으로 바꾸면 됨
다른 사람은 구조분해할당을 사용하여 풂
나는 함수를 만들어서 계산하고 풀었는데 생각해보면
다른사람들처럼
numbers.unshift(numbers.pop())
numbers.push(numbers.shift())
해서 뽑은 값들을 넣어줬으면 됐다
아스키 코드로 푸는 값
나는 우선 주어진 정수를 Stinrg과 split을 통해 배열의 각 인덱스에 넣어준 후 for문을 활용해서 각 인덱스를 아스키코드로 치환한 값을 새로운 배열에 넣음.
그 후 그 배열에 있는 값들을 fromCodePoint로 뺴서 또 새로운 배열에 넣어줌
마지막으로 그 배열을 join('')을 활용하여 문자열로 만들어준 후 return
나는 이렇게 바보같이 배열을 한 개 복사한 후 가장큰 애를 빼고 해당하는 애를 뺐다
하지만 이렇게 max를 사용하면되는데 여기서도 비구조화할당을 사용하여서 그 중에 가장 큰 숫자를 찾고 indexOf를 활용해서 인덱스를 구함