[JQUERY] jQuery를 객체 평등
JQUERYjQuery를 객체 평등
해결법
-
1.jQuery를 1.6 때문에, 당신은 .is는 사용할 수 있습니다. 다음은 일 년 이상 이전의 대답은 ...
jQuery를 1.6 때문에, 당신은 .is는 사용할 수 있습니다. 다음은 일 년 이상 이전의 대답은 ...
var a = $('#foo'); var b = a; if (a.is(b)) { // the same object! }
당신은 두 개의 변수가 실제로 같은 객체, 예를 들어 있는지 확인하려면 :
var a = $('#foo'); var b = a;
... 당신은 자신의 고유 ID를 확인할 수 있습니다. 때마다 당신은이 ID를 가져옵니다 새로운 jQuery를 개체를 만듭니다.
if ($.data(a) == $.data(b)) { // the same object! }
비록이 같은이 단순한 === B로 얻을 수있는, 적어도 위의 힘은의 다음 개발자 정확히 무엇을 당신에게있는 거 테스트를 보여줍니다.
어떤 경우에는, 그 후 당신없는 것을 아마. 당신이 두 개의 서로 다른 jQuery를 개체 요소의 동일한 세트가 포함되어 있는지 확인하고 싶었다 경우, 당신은이를 사용할 수 있습니다 :
$.fn.equals = function(compareTo) { if (!compareTo || this.length != compareTo.length) { return false; } for (var i = 0; i < this.length; ++i) { if (this[i] !== compareTo[i]) { return false; } } return true; };
출처
var a = $('p'); var b = $('p'); if (a.equals(b)) { // same set }
-
2.당신은 여전히 알 수없는 경우, 원래 객체에 의해 다시 얻을 수 있습니다 :
당신은 여전히 알 수없는 경우, 원래 객체에 의해 다시 얻을 수 있습니다 :
alert($("#deviceTypeRoot")[0] == $("#deviceTypeRoot")[0]); //True alert($("#deviceTypeRoot")[0] === $("#deviceTypeRoot")[0]);//True
$ ( "#의 deviceTypeRoot")은 또한 선택은 선택한 객체의 배열을 반환하기 때문에.
-
3.은 $ .fn.equals는 (...) 솔루션은 아마도 가장 깨끗하고 가장 우아한 하나입니다.
은 $ .fn.equals는 (...) 솔루션은 아마도 가장 깨끗하고 가장 우아한 하나입니다.
나는 이런 식으로 뭔가를 신속하고 더러운 시도했다 :
JSON.stringify(a) == JSON.stringify(b)
아마 비싸지 만 편안한 것은 우아한 해결책이 아닌하면서, 암시 적으로 재귀 것입니다.
그냥 내 2 센트.
-
4.그것은 일반적으로 그 다음 비교 기능적으로 동일로 $ (foo는)와 $ (foo는) 비교, 나쁜 생각을 말할 수있다 :
그것은 일반적으로 그 다음 비교 기능적으로 동일로 $ (foo는)와 $ (foo는) 비교, 나쁜 생각을 말할 수있다 :
<html> <head> <script language='javascript'> function foo(bar) { return ({ "object": bar }); } $ = foo; if ( $("a") == $("a") ) { alert ("JS engine screw-up"); } else { alert ("Expected result"); } </script> </head> </html>
물론 당신은 "JS 엔진 나사 업"을 기대하지 않을 것입니다. 난 그냥 jQuery를이 무엇을하고 있는지 명확하게하기 위해 "$"가 사용합니다.
새 객체를 반환 ( "# foo는") 당신이 실제로 jQuery를 ( "# foo는")를하고있는 $를 호출 할 때마다. 를 비교하고 동일한 개체를 기대 그래서 올바르지 않습니다.
그러나 당신이 할 수 할 수있는 것은 같은입니다 :
<html> <head> <script language='javascript'> function foo(bar) { return ({ "object": bar }); } $ = foo; if ( $("a").object == $("a").object ) { alert ("Yep! Now it works"); } else { alert ("This should not happen"); } </script> </head> </html>
JQuery와 같은 것을, 그래서 당신의 진짜 프로그램의 개체 그래서 정말 당신은 아마 ID 요소를 비교해야
... $(someIdSelector).attr("id") == $(someOtherIdSelector).attr("id")
더 적절하다.
-
5.사용 Underscore.js ISEQUAL 방법 http://underscorejs.org/#isEqual
사용 Underscore.js ISEQUAL 방법 http://underscorejs.org/#isEqual
-
6.먼저 개체가이 기능을 사용하여 키를 기반으로 주문할
먼저 개체가이 기능을 사용하여 키를 기반으로 주문할
function sortObject(o) { return Object.keys(o).sort().reduce((r, k) => (r[k] = o[k], r), {}); }
그런 다음,이 기능을 사용하여 객체의 캐릭터 라인 버전을 비교
function isEqualObject(a,b){ return JSON.stringify(sortObject(a)) == JSON.stringify(sortObject(b)); }
가정 오브젝트 키는 다른 주문과 같은 값으로되어있다
var obj1 = {"hello":"hi","world":"earth"} var obj2 = {"world":"earth","hello":"hi"} isEqualObject(obj1,obj2);//returns true
-
7.당신이 내용을 확인하려면 다음 단지 동일하거나 사용하지 않을 수 있습니다 JSON.stringify (OBJ)
당신이 내용을 확인하려면 다음 단지 동일하거나 사용하지 않을 수 있습니다 JSON.stringify (OBJ)
하나 - 바 {키 : 좋은} =;
또는로드 = {키 : 좋은};
내용이 동일한 경우 JSON.stringify (A) == JSON.stringify (b)는 -----> 당신은 진정한 가져옵니다.
from https://stackoverflow.com/questions/3176962/jquery-object-equality by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 자바 스크립트 객체의 필터 어레이 (0) | 2020.10.05 |
---|---|
[JQUERY] jQuery를 사용하여 첫 번째 선택 목록 옵션에 따라 두 번째 선택 목록을 변경하려면 (0) | 2020.10.05 |
[JQUERY] 어떻게을 가진 요소를 선택 jQuery를받을 수 있나요. 자신의 ID에서 (기간)? (0) | 2020.10.05 |
[JQUERY] 토글 쇼 / 버튼 숨기기 DIV? (0) | 2020.10.05 |
[JQUERY] 배열에 고유 한 값을 얻는 방법 (0) | 2020.10.05 |