집 >
웹 프론트엔드 >
JS 튜토리얼 >
JavaScript는 여러 arrays_javascript 기술의 교차점에 대한 간단한 예를 얻습니다.
JavaScript는 여러 arrays_javascript 기술의 교차점에 대한 간단한 예를 얻습니다.
WBOY
풀어 주다: 2016-05-16 17:16:19
원래의
1332명이 탐색했습니다.
프로젝트에서는 여러 배열의 교차점을 얻어야 하므로 이 예는 특정 시나리오에만 적합합니다. 예를 들어, A 배열 var a = {1000,10001,10002,10003}; B 배열 var b = {10002, 10003}; C 배열 var c = {10003}; 구체적인 아이디어는 다음과 같습니다. 먼저 가장 작은 배열을 A 배열로 초기화하고 가장 작은 요소 수는 배열 A의 길이이기도 합니다. 그런 다음 각 배열을 반복하여 이러한 배열의 가장 짧은 길이를 최소 길이로 얻습니다. , 동시에 가장 짧은 길이의 배열을 얻습니다. 그런 다음 최소 배열과 각 배열을 반복하고 요소가 같은지 비교하기 시작하고 카운터를 사용하여 해당 요소가 각 배열에 존재하는지 교차 요소인지 확인합니다. 아이디어는 비교적 간단하지만 그럴 수 있습니다. 코드는 다음과 같습니다.
<스크립트> function getValues(obj){ var 값 = ""; var l = obj.options.length; for (var i=0; i if (i != (l-1)) { values = obj.options(i).value "_"; } else { 값 = obj.options(i).value; } } 반환 값; }
function _test() { var ids = getValues(document.all.aa); var aa = _getIntersection(ids); }
function _getIntersection(src) { var tAry = src.split("_"); //最小数组 var minAry = null; var min = tAry[0].split(",").length; //初始化第一个为长島最small数组 minAry = tAry[0].split(","); for (var i = 1, len = tAry.length; i var temp = tAry[i].split(","); if (temp.length < min) { min = temp.length; minAry = 임시; } } Alert("最小数组:" minAry);
var ret = ''; for (var i = 0, len = minAry.length; i var srcNum =parseInt(minAry[i]); var 카운터 = 0; for (var j = 0, ll = tAry.length; j var tt = tAry[j].split(","); for (var k = 0, l = tt.length; k var tarNum =parseInt(tt[k]); if (srcNum == tarNum) { 카운터 ; } } } if (counter == tAry.length) { ret = srcNum ","; } } ret = strSlice(ret, ','); Alert("交集是:" ret); 8 ')) return ((str.charAt(str.length-1) == 분할) ? str.substring(0, str.length-1) : str); else return str; }