gurwhddl
코알못 공부블로그
gurwhddl
전체 방문자
오늘
어제
  • 분류 전체보기
    • CSS
    • JS
    • node.JS
    • REACT
    • 코딩테스트 연습

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
gurwhddl

코알못 공부블로그

JS

parentNode/every some

2023. 1. 3. 14:38
arr.map((row, ri) => { row.map((cell, ci) => { if (cell.textContent) { trial++; }

a.parentNode 하면 a의 부모 태그를 지정해줌

반대로 a.children 하면 자식 태그로 - 여러개있으면 []안에 넣어져있지만 배열 아님

HTMLCollection(3) [td, td, td] - 콘솔에 찍어보면 이렇게 나오는데 저렇게 앞에 뭔가 써있으면 배열 아님(유사배열 이라고 함 - 객체임)

그냥 배열은 (3) [td,td,td] 이렇게 나옴

당연히 배열이 아니니깐 forEach같은 배열에만 쓸수있는 반복문 같은건 못씀(for문은 쓸 수는 있음)

 

이런거 진짜 배열로 바꾸는법 

Array.from(유사배열) - 진짜 찐 배열이 리턴됨

 

every/some

let content = true;

arr.map((row, ri) => {
row.map((cell, ci) => {
        if (! cell.textContent) {
               content = false }
 
테이블 하나를 만들었는데 여기에 내용이 다 차있는지를 찾고싶음 / arr은 2차원배열로 안에 td가 들어있다고 가정
 
이런 코드가 있다고 했을 때 map은 모든 cell의 인덱스를 다 조사해서 있는지 없는지를 조사해줄거임
근데 만약에 맨 처음 조사한 cell이 빈칸이라면 굳이 그 뒤까지 다 조사할 필요가 없지만
함수에는 기본적으로 return undefined라는게 달려있기 때문에 저기에 return을 해도 중간에 빈칸 찾았다고 끝나고 그러지 않음
 
한마디로 지금 필요한 건 모두 다 있어야 true - 하나라도 빈칸 발견되면 false를 만들어주는게 필요
 
every는 1차원 배열에만 사용가능 
2차원 배열을 1차원으로 바꾸고싶으면 
2차원배열.flat( ) - [[1,2,3],[4,5,6]] => [1,2,3,4,5,6] 이렇게 바뀜
 
2차원.flat( ).every((td) => td.textContent(*td.textContent === true를 생략한거) 해주면 모두 다 내용이 있어야 true가 리턴 / 아니면 false
2차원.flat( ).some((td) => td.textContent) 이건 하나라도 있으면 true/ 아니면 false
 
뜯어보면 저 return값인 td.textContent가 true 아니면 false로 리턴이 될텐데 every는 모든값이 다 true로 리턴이 돼야 최종적으로 true인거고 some은 하나라도 true로 리턴이 돼야지 true인거
 
이걸 쓰면 좀 빠르게 하나라도 조건에 맞지않는게(false) 나오면 함수를 끝내주기 때문에 편함(코테같은거 볼때 유용)
 
every는 모든 조건이 다 true여야 true
some은 하나라도 true여야 true -

 

'JS' 카테고리의 다른 글

호출스택과 이벤트 루프 정리  (1) 2023.01.21
Iterable/Iterator 정리  (0) 2023.01.11
이벤트 버블링 현상  (1) 2022.12.28
var이랑 let,const 차이점  (0) 2022.11.30
SetTimeOut 함수쓸 때 주의점  (0) 2022.11.30
    'JS' 카테고리의 다른 글
    • 호출스택과 이벤트 루프 정리
    • Iterable/Iterator 정리
    • 이벤트 버블링 현상
    • var이랑 let,const 차이점
    gurwhddl
    gurwhddl

    티스토리툴바