배열함수 filter 문제
199
작성자 없음
let doubleLetter = names.filter((item) => {
let splitName = item.split("");
return splitName.some((letter, index) => letter == splitName[index + 1]);
})
console.log(doubleLetter)
filter 조건에 some을 사용해서 true가 반환되면 true에 부합하는 배열의 문자열이 반환되는걸로 이해했습니다.
그런데 some 조건에 letter가 어떤 역할인지 잘 모르겠어요.. ㅠㅠ
splitName[index] == splitName[index + 1] 이렇게 하면 names 배열이 전부 콘솔창에 뜨던데 이건 왜 안되는건가요??
찾아보니 split이 지정한 구분자로 문자열을 나눠서 배열에 담아 리턴한다고 나와있던데
let names = [ "Steven Paul Jobs", "Bill Gates" ];
이면 item.split("") 했을 때, let splitName = [["Steven", "Paul" , "Jobs"], ["Bill", "Gates"]] 이렇게 되는게 맞나요??
그러면 letter == splitName[index + 1] 은 어떻게 되는건가용...
답변 1
1
안녕하세요!
split은 문자를 나누는 함수입니다 () 안에 들어간 값 기준으로 나누게 됩니다
let names = [ "Steven Paul Jobs", "Bill Gates" ];
이는 문자가 아닌 배열이기 때문에 split함수를 쓸 수 없습니다
let name = "Steven Paul Jobs" 라면
name.split(" ") 이 가능합니다
이와같은 경우에는 공백을 기준으로 나누기 때문에
반환값은 배열로
["Steven", "Paul" , "Jobs"]
로 나오게 됩니다.
split("")를 하게되면 공백이아닌 문자열을 하나하나 나누게 됩니다 그래서
['S', 't', 'e', 'v', 'e', 'n', ' ', 'P', 'a', 'u', 'l', ' ', 'J', 'o', 'b', 's'] 가 결과값이 됩니다
some에서의 letter는 이 글자 하나하나를 다시 가져오는 역할을 합니다
따라서 letter에는 매 턴 마다 S, t, e, v, e, n 이 차례로 들어가게 됩니다
반복문 문제3 369게임
0
484
1
투두리스트 과제 힌트 좀 주세요 ㅠ
0
410
1
강의가 재생이 안됩니다.
0
431
2
강의 정리된 자료
0
419
1
타임즈뉴스 401에러
0
359
1
to do list
0
324
1
EventListener 질문입니다.
0
272
1
developer tool 아이콘 클릭했는데 콘솔창이 안떠요
0
259
1
git 허브나 netlify 용량
0
1267
1
깃허브 오류
0
371
1
Math 함수를 사용해봤는데. ... 은 무슨 의미일까요??
0
444
1
로컬스토리지 저장하는 방법 알려주세요 ㅠㅠ
0
871
1
타임즈 render 부분 질문
0
448
1
인프런 블로그 작성
1
496
1
전날엔 되던것이 담날엔 안되네요 ㅜㅜ
0
434
1
뉴욕타임즈 뉴스를 그려보자 reder편 질문
0
401
1
TO DO LIST
0
367
1
TO DO LIST
0
440
1
es6 7번 문제에 관하여 질문사항 있습니다.
0
327
1
node.js 로 웹서버 구축할때 힘들었는데 넷리파이로 이렇게 쉽게 웹서버가 만들어지다니.. 감동입니다. 항상 서버도 살아있고 깃헙이랑 동기화되는게 장점인것같아요
0
428
0
함수강의 연습문제 6번 질문사항
0
257
1
let gameOver = false;
0
258
1
api 호출 관련해서 Usage 가 50이라...
0
419
1
map이 안먹습니다.. ㅠㅠㅠ
0
372
2





