본문 바로가기

Front End/Javascript

[JavaScript] 배열 filter(), reverse(), every(), some()

배열.filter(함수)

매개 변수로 주어진 함수를 이용하여 배열내의 모든 요소를 테스트해서 참인 요소만으로 만들어진 배열을 반환합니다.

        let oddArr = ar2.filter(n=>n%2==1);   // 홀수만
        let evenArr = ar2.filter(n=>n%2==0); // 짝수만

 

reverse()

배열 요소의 순서가 뒤집힌 배열을 반환합니다.

        document.write(`띠(${zodiac.length}개) : ${zodiac.reverse()}<br><hr>`);


every() : and

매개 변수로 주어진 함수로 배열내의 모든 요소를 테스트해서 참일 경우 true를 반환합니다.

        let ar = [2, 4, 6, 8];
        document.write(`${ar.length}개 : ${ar}<br>`);
        document.write(`${ar.every(n=>n%2==0) ? '모두짝수임' : '모두짝수아님'}<br><hr>`);


some() : or

매개 변수로 주어진 함수를 배열의 요소에 대해서 적용해서 하나라도 참이면 true 를 반환합니다.

        ar[2] = 7;
        document.write(
`${ar.length}개 : ${ar}<br>`);
        document.write(`${ar.some(n=>n%2==1) ? '홀수있음' : '홀수없음'}<br><hr>`);
       
        ar[2] = 6;
        document.write(`${ar.length}개 : ${ar}<br>`);
        document.write(`${ar.some(n=>n%2==1) ? '홀수있음' : '홀수없음'}<br><hr>`);

 

 

ex09.html 파일을 다음과 같이 만듭니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<html lang="ko">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>javascript Array</title>
    <script>
        const zodiac = "쥐,소,호랑이,토끼,용,뱀,말,양,원숭이,닭,개,돼지".split(",");
        document.write(`띠(${zodiac.length}개) : ${zodiac}<br>`);
        
        // 인자로 주어진 함수로 배열내의 모든 요소를 테스트해서 참인 요소만으로 만들어진 배열을 반환합니다.
        let ar1 = zodiac.filter(v=>v.length==1);
        document.write(`1글자들 : ${ar1}<br>`);
        document.write(`2글자들 : ${zodiac.filter((s)=>s.length==2)}<br>`);
        document.write(`3글자들 : ${zodiac.filter((s)=>s.length==3)}<br><hr>`);
        
        let rand = (min = 0, max = 100=> parseInt(Math.random() * (max - min + 1)) + min;
        let ar2 = [];
        for (let i = 0; i < 20; i++) ar2.push(rand());
        document.write(`${ar2.length}개 : ${ar2}<br>`);
        let oddArr = ar2.filter(n=>n%2==1);
        let evenArr = ar2.filter(n=>n%2==0);
        document.write(`홀수 배열(${oddArr.length}개) : ${oddArr}<br>`);
        document.write(`짝수 배열(${evenArr.length}개) : ${evenArr}<br><hr/>`);
 
        
        // reverse() : 배열 요소의 순서가 뒤집힌 배열을 반환합니다.
        document.write(`띠(${zodiac.length}개) : ${zodiac.reverse()}<br><hr>`);
        // every() : 인자로 주어진 함수로 배열내의 모든 요소를 테스트해서 참일 경우 true를 반환합니다.
        let ar = [2468];
        document.write(`${ar.length}개 : ${ar}<br>`);
        document.write(`${ar.every(n=>n%2==0) ? '모두짝수임' : '모두짝수아님'}<br><hr>`);
        
        ar[2= 7;
        document.write(`${ar.length}개 : ${ar}<br>`);
        document.write(`${ar.every(n=>n%2==0) ? '모두짝수임' : '모두짝수아님'}<br><hr>`);
        
        // some() : 인자로 주어진 함수를 배열의 요소에 대해서 적용해서 하나라도 참이면 true 를 반환합니다.
        document.write(`${ar.length}개 : ${ar}<br>`);
        document.write(`${ar.some(n=>n%2==1) ? '홀수있음' : '홀수없음'}<br><hr>`);
        
        ar[2= 6;
        document.write(`${ar.length}개 : ${ar}<br>`);
        document.write(`${ar.some(n=>n%2==1) ? '홀수있음' : '홀수없음'}<br><hr>`);
 
    </script>
</head>
 
<body>
 
</body>
 
</html>
cs

 

 

실행 결과 입니다.