반응형
2가지 배열이 있을 때, 그 배열이 동일한 배열인지 아닌지를 판단할 경우가 많다.
그래서 javascript의 splice 함수를 이용해서 두 배열이 동일한 배열인지 아닌지 판단하는 함수를 만들었다.
배열 비교 예제
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
|
function compareArray(arr1, arr2) {
// 결과값
var rst = false;
// 길이가 다르면 다른 배열이라고 판단
if (arr1.length != arr2.length) {
return rst;
}
// arr1 배열의 크기만큼 반복
arr1.forEach(function (item) {
// arr1 배열 아이템이, arr2 배열에 있는지 확인
// 있으면, arr2에 item이 존재하는 index 리턴
// 없으면, -1 리턴
var i = arr2.indexOf(item);
// 존재하면, splice함수를 이용해서 arr2 배열에서 item 삭제
if (i > -1) arr2.splice(i, 1);
});
// compare2의 길이가 0이면 동일하다고 판단.
rst = arr2.length == 0;
return rst;
}
|
cs |
간단한 함수이다.
두배열이 동일하면 true, 동일하지 않으면 false를 리턴해준다.
호출 결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// Case 1. 크기가 서로 다를때 (compare1 > compare2)
var compare1 = [1, 2, 3, 4, 5, 6, 7, 8];
var compare2 = [1, 2, 3, 4, 5, 6, 7];
console.log("Case 1 : " + compareArray(compare1, compare2));
// Case 2. 크기가 서로 다를때 (compare1 < compare2)
compare1 = [1, 2, 3, 4, 5, 6, 7, 8];
compare2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log("Case 2 : " + compareArray(compare1, compare2));
// Case 3. 결과가 같을때
compare1 = [1, 2, 3, 4, 5, 6, 7, 8];
compare2 = [1, 2, 3, 4, 5, 6, 7, 8];
console.log("Case 3 : " + compareArray(compare1, compare2));
// Case 4. 크기는 같지만 내용이 다를때
compare1 = [1, 2, 3, 4, 5, 6, 7, 8];
compare2 = [1, 2, 4, 4, 5, 6, 7, 8];
console.log("Case 4 : " + compareArray(compare1, compare2));
|
cs |
여러가지 경우를 만들었다.
크기가 서로 다를 때, 크기는 같지만 내용이 다를 때, 동일한 배열일 때.
결과는 정상적으로 두배열이 동일한지 아닌지 확인할 수 있었다.
반응형
'개발 > Javascript' 카테고리의 다른 글
[Javascript] 현재 스크롤 위치 퍼센트로 구하기 (0) | 2020.01.28 |
---|---|
[Javascript] 최소~최대 까지 랜덤 숫자 가져오기. (1) | 2020.01.28 |
[Javascript] QueryString 가져오기. (0) | 2020.01.10 |
[Javascript] 배열(Array) 랜덤하게 섞기 (6) | 2019.12.04 |
[Javascript] Array 반복문, $.each/some/forEach 비교! (0) | 2019.12.04 |