makeArray: function(array, results) {//배열과 유사한 객체를 실제 JavaScript 배열로 변환합니다. results는 선택적 매개변수입니다
var ret = results || [];//results는 배열을 저장하기 위한 배열로 사용됩니다. 정의되지 않은 경우 빈 배열로 설정됩니다
(array != null) {{//window, 문자열, 함수 및 배열 유형의 .length는 정의되지 않았습니다. (IE에서는 document.getElementById가 정의되지 않았고 jQuery.type(document.getElementById)은 객체이므로 이와 같은 메서드는 특별합니다. IE에서는 type 메소드를 사용할 수 있습니다.
var type = jQuery.type( array )
if ( array.length == null || type === "string" || type = == "function" || type === "regexp " || jQuery.isWindow( array ) )
push.call( ret, array );// 전달된 객체는 배열이 아니므로 푸시하고 ret 배열에 추가하세요
} else {
jQuery.merge( ret, array );//들어오는 객체는 ret 배열에 직접 병합된 배열 또는 유사한 배열입니다
}
}
return ret;
},
inArray: function( elem, array ) {//배열에서 지정된 값을 검색하고 해당 인덱스를 반환합니다(찾을 수 없는 경우 -1 반환).
if ( indexOf ) {//ECMA-262 표준 브라우저가 이를 지원하고 IE 시리즈는 IE9까지 Array.prototype.indexOf를 지원하지 않습니다.
return indexOf.call( array, elem )
}
for ( var i = 0, length = array.length; i if ( array[ i ] === elem ) {
return i;
}
}
return -1;
},
merge: function( first, second) {//병합 배열
var i = first. length ,
j = 0;
if ( typeof second.length === "number" ) {//객체에 길이 속성이 있는지 간단히 감지하고, 그렇다면 이를 작업 끝에 추가합니다. 루프의 배열
for ( var l = second.length; j first[ i ] = second[ j ]
}
} else {
while ( second[j] !== undefine ) {
first[ i ] = second[ j ]
}
}
first.length = i; return first;
},
grep: function(elems, callback, inv) {//필터링 함수를 만족하는 배열 요소를 찾습니다. 원래 배열은 영향을 받지 않습니다.
var ret = [], retVal;
inv = !!inv;//inv가 명시적으로 지정되지 않거나 false로 지정된 경우, inv=false; = 0, length = elems.length; i retVal = !!callback( elems[ i ], i );//부울 값 유형으로 변환
if ( inv !== retVal ) {//콜백에서 반환된 결과가 inv와 반대인 경우 유지됩니다. ret.push( elems[ i ] )
}
}
return ret;