[JQUERY] 자바 스크립트 알고리즘은 다른 배열에없는 배열의 요소를 찾을 수
JQUERY자바 스크립트 알고리즘은 다른 배열에없는 배열의 요소를 찾을 수
해결법
-
1.
var z = $.grep(y, function(el){return $.inArray(el, x) == -1});
또한, 그 메소드 이름은 자신의 좋은 너무 짧습니다. 나는 isElementInArray하지 같이 IndexOf를 의미하는 기대.
객체가있는 데모의 경우 http://jsfiddle.net/xbdz3/6/을 참조하십시오.
-
2.새로운 ECMA5 JavaScript로 늦은 답변 :
새로운 ECMA5 JavaScript로 늦은 답변 :
var x = ["a","b","c","t"]; var y = ["d","a","t","e","g"]; myArray = y.filter( function( el ) { return x.indexOf( el ) < 0; });
-
3.에서 ES6 단순히
에서 ES6 단순히
CONST X = [ "A", "B", "C", "t"]; CONST Y = "D", "A", "t", "E", "g"]; CONSOLE.LOG (y.filter (E => x.includes (E))!);
(또 다른 옵션 ===) y.filter (E => x.indexOf (E 인 - 1))
-
4.여기 underscore.js를 사용하여 대안이다 :
여기 underscore.js를 사용하여 대안이다 :
function inAButNotInB(A, B) { return _.filter(A, function (a) { return !_.contains(B, a); }); }
-
5.어쩌면 jLinq 도와 드릴까요?
어쩌면 jLinq 도와 드릴까요?
그것은 당신이 자바 스크립트 객체에 대해 같은 쿼리를 실행할 수 있습니다.
예를 들면 :
var users = [ { name: "jacob", age: 25 }, { name: "bob" , age: 30 }] var additionalusers = [ { name: "jacob", age: 25 }, { name: "bill" , age: 25 }] var newusers = jLinq.from(users).except(additionalusers).select(); >>> newusers = [ { name: "bob" , age: 30 } ]
이 순간에 당신을 위해 조금 잔인한,하지만 내가 대해 배울 기뻐하는 강력한 솔루션입니다.
그것은 교차, 노동 조합, 손잡이 부울 논리 및 모든 종류의 훌륭한 Linq 스타일의 선량을 할 수 있습니다.
-
6.만들기 먼저 배열의 복사본을 분류. 상위 요소가 동일한 경우, 그들 모두를 제거합니다. 그렇지 않으면 작은 요소를 제거하고 결과를 배열에 추가합니다. 하나 개의 배열이 비어있는 경우, 결과 및 마무리에 다른 배열의 나머지 부분을 추가합니다. 대신 요소를 제거하는 정렬 된 배열을 반복 할 수 있습니다.
만들기 먼저 배열의 복사본을 분류. 상위 요소가 동일한 경우, 그들 모두를 제거합니다. 그렇지 않으면 작은 요소를 제거하고 결과를 배열에 추가합니다. 하나 개의 배열이 비어있는 경우, 결과 및 마무리에 다른 배열의 나머지 부분을 추가합니다. 대신 요소를 제거하는 정렬 된 배열을 반복 할 수 있습니다.
// assume x and y are sorted xi = 0; yi = 0; xc = x.length; yc = y.length; while ( xi < xc && yi < yc ) { if ( x[xi] == y[yi] ) { xi += 1; yi += 1; } else if ( x[xi] < y[yi] ) { z.push( x[xi] ); xi += 1; } else { z.push( y[yi] ); yi += 1; } } // add remainder of x and y to z. one or both will be empty.
-
7.이 늦은 대답이지만, 일부는 것이 도움이 찾을 수 있도록 더 라이브러리를 사용하지 않습니다.
이 늦은 대답이지만, 일부는 것이 도움이 찾을 수 있도록 더 라이브러리를 사용하지 않습니다.
/** * Returns a non-destructive Array of elements that are not found in * any of the parameter arrays. * * @param {...Array} var_args Arrays to compare. */ Array.prototype.uniqueFrom = function() { if (!arguments.length) return []; var a1 = this.slice(0); // Start with a copy for (var n=0; n < arguments.length; n++) { var a2 = arguments[n]; if (!(a2 instanceof Array)) throw new TypeError( 'argument ['+n+'] must be Array' ); for(var i=0; i<a2.length; i++) { var index = a1.indexOf(a2[i]); if (index > -1) { a1.splice(index, 1); } } } return a1; }
예:
var sheetUsers = ['joe@example.com','fred@example.com','sam@example.com']; var siteViewers = ['joe@example.com','fred@example.com','lucy@example.com']; var viewersToAdd = sheetUsers.uniqueFrom(siteViewers); // [sam@example.com] var viewersToRemove = siteViewers.uniqueFrom(sheetUsers); // [lucy@example.com]
-
8.
findDiff = (A, B) => { return A.filter(function (a) { return !B.includes(a); }); }
from https://stackoverflow.com/questions/2963281/javascript-algorithm-to-find-elements-in-array-that-are-not-in-another-array by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] JQuery와없는 JQuery와 '트리거'방법의 상응하는 무엇입니까? (0) | 2020.11.03 |
---|---|
[JQUERY] xmlHttp.getResponseHeader + CORS이 작동하지 않음 (0) | 2020.11.03 |
[JQUERY] 키 누르기 변경 (0) | 2020.11.03 |
[JQUERY] 내용으로 수평으로 스크롤하기 위해 고정 된 위치 div를 어떻게 움직입니까? jQuery를 사용합니다 (0) | 2020.11.03 |
[JQUERY] Ctrl 키를 사용하지 않고 HTML Select 요소에서 여러 번 선택 (0) | 2020.11.03 |