>  기사  >  웹 프론트엔드  >  JS에서 구현된 집합 중복 제거, 교집합, 합집합, 차이 기능의 예

JS에서 구현된 집합 중복 제거, 교집합, 합집합, 차이 기능의 예

亚连
亚连원래의
2018-05-30 15:55:101656검색

이 글에서는 주로 JS에서 구현하는 집합 중복제거, 교집합, 합집합, 차이 기능을 소개하며, JavaScript로 구현한 배열을 기반으로 집합 중복제거, 교집합, 합집합, 차이 등의 관련 구현 기술을 예제 형식으로 분석합니다. 필수입니다 친구가 참고하면 됩니다

이 글에서는 JS에서 구현하는 집합 중복제거, 교집합, 합집합, 차분 기능에 대해 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

1.js는 배열의 집합 연산을 구현합니다.

테스트의 편의를 위해 여기서는 nodejs를 사용합니다. 코드는 set_Operation.js

function array_remove_repeat(a) { // 去重
  var r = [];
  for(var i = 0; i < a.length; i ++) {
    var flag = true;
    var temp = a[i];
    for(var j = 0; j < r.length; j ++) {
      if(temp === r[j]) {
        flag = false;
        break;
      }
    }
    if(flag) {
      r.push(temp);
    }
  }
  return r;
}
function array_intersection(a, b) { // 交集
  var result = [];
  for(var i = 0; i < b.length; i ++) {
    var temp = b[i];
    for(var j = 0; j < a.length; j ++) {
      if(temp === a[j]) {
        result.push(temp);
        break;
      }
    }
  }
  return array_remove_repeat(result);
}
function array_union(a, b) { // 并集
  return array_remove_repeat(a.concat(b));
}
function array_difference(a, b) { // 差集 a - b
  //clone = a
  var clone = a.slice(0);
  for(var i = 0; i < b.length; i ++) {
    var temp = b[i];
    for(var j = 0; j < clone.length; j ++) {
      if(temp === clone[j]) {
        //remove clone[j]
        clone.splice(j,1);
      }
    }
  }
  return array_remove_repeat(clone);
}
a = [1,2,3,4,5];
b = [3,4,5,6,7];
c = array_intersection(a, b);
d = array_union(a, b);
e = array_difference(a, b);
f = array_difference(b, a);
console.log("test array a:", a, " b:", b);
console.log("a & b :", c);
console.log("a + b :", d);
console.log("a - b:", e);
console.log("b - a:", f);
와 같습니다.

2. 테스트

여기서 nodejs를 테스트에 사용합니다

테스트 결과:

stephen@stephen:~/openstack/demo/nodejs$ node set_operation.js
test array a: [ 1, 2, 3, 4, 5 ]  b: [ 3, 4, 5, 6, 7 ]
a & b : [ 3, 4, 5 ]
a + b : [ 1, 2, 3, 4, 5, 6, 7 ]
a - b: [ 1, 2 ]
b - a: [ 6, 7 ]

위 내용은 제가 모두를 위해 편집한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

jquery는 드래그 파일 업로드 로딩 진행률 표시줄 기능을 구현합니다.

Javascript 프로토타입 및 프로토타입 체인 분석

Angular CLI를 사용하여 Angular 5 프로젝트 튜토리얼 자세한 설명 생성

위 내용은 JS에서 구현된 집합 중복 제거, 교집합, 합집합, 차이 기능의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.