js 그룹 확장 방법

7571 단어 js
1. 그룹 비우기
 
Array.prototype.clear = function() {
    this.length = 0;
}
 
 
2. 데이터 항목이 수조에 있는 위치를 판단한다
varoldArrayIndexOf = Array.indexOf;// indexOf 
Array.prototype.indexOf = function(obj) {
    if(!oldArrayIndexOf) {
        for(vari = 0, imax = this.length; i < imax; i++) {
            if(this[i] === obj) {
                returni;
            }
        }
        return-1;
    } else{
        returnoldArrayIndexOf(obj);
    }
}

3. 데이터 항목이 이 그룹에 있는지 판단
Array.prototype.contain = function(obj) {
    returnthis.indexOf(obj) !== -1;
}

4. 데이터 항목을 지정된 위치에 추가
Array.prototype.insertAt = function(index, obj) {
    if(index < 0) index = 0;     if(index > this.length) index = this.length;
    this.length++;
    for(vari = this.length - 1; i > index; i--) {
        this[i] = this[i - 1];
    }
    this[index] = obj;
}

5. 가장 많은 데이터를 반환
Array.prototype.last = function() {
    returnthis[this.length - 1];
}

6. 배열에서 지정한 인덱스 값을 제거합니다.
Array.prototype.removeAt = function(index) {
    if(index < 0 || index >= this.length) return;
    varitem = this[index];
    for(vari = index, imax = this.length - 2; i < imax; i++) {         this[i] = this[i + 1];     }     this.length--;     returnitem; }

7. 데이터 항목의 데이터 제거
Array.prototype.removeAt = function(obj) {     varindex = this.indexOf(obj);     if(index >= 0)
        this.removeAt(index);
}

8. 그룹에 대한 조회는 대상 그룹에 있는 대상의 일부 값을 조회하는 데 사용되며, 조회된 속성의 이름을 바꾸는 것을 지원합니다. 만약에 조회된 속성이 개수 그룹에 없다면 이 속성은undefined로 되돌아옵니다.
Array.prototype.select = function(args) {
    varnewItems = [];
    if(typeof(args) === "object"&& arguments.length === 1) {// 
        for(vari = 0, imax = this.length; i < imax; i++) {
            varitem = {};
            for(varkey inargs) {
                if(args[key] !== undefined) {
                    item[key] = this[i][key] === undefined ? "undefined": this[i][key];
                }
            }
            newItems.push(item);
        }
    } elseif(typeof(args) === "string"&& arguments.length === 1) {// , 
        for(vari = 0, imax = this.length; i < imax; i++) {
            varitem = {};
            varkeys = args.split(',');
            for(vark = 0, kmax = keys.length; k < kmax; k++) {
                variKey = keys[k].split("as");
                if(iKey.length === 1) {
                    item[iKey[0].trim()] = this[i][iKey[0].trim()] === undefined ? "undefined": this[i][iKey[0].trim()];
                } else{
                    item[iKey[1].trim()] = this[i][iKey[0].trim()] === undefined ? "undefined": this[i][iKey[0].trim()];
                }
            }
            newItems.push(item);
        }
    } else{// 
        for(vari = 0, imax = this.length; i < imax; i++) {
            varitem = {};
            for(varj = 0, jmax = arguments.length; j < jmax; j++) {
                if(arguments[j] !== undefined) {
                    variKey = arguments[j].split("as");
                    if(iKey.length === 1) {
                        item[iKey[0].trim()] = this[i][iKey[0].trim()] === undefined ? "undefined": this[i][iKey[0].trim()];
                    } else{
                        item[iKey[1].trim()] = this[i][iKey[0].trim()] === undefined ? "undefined": this[i][iKey[0].trim()];
                    }
                }
            }
            newItems.push(item);
        }
    }
    returnnewItems;
}

 
가령 데이터 대상 수조는:var obj=[{name:'장삼', second.age:'24', sex:'남'}, {name:'장이', age:'21', age:'23', sex:'남'}, {name:'장사', age:'25', sex:'여'}, {name:'장5', age:'22', sex:'남'}이다.
예1:obj.select(“name,second.age as age,sex”);예2:obj.select(“name”,”second.age as age”,”sex”);예3: 검색 속성 대상 vararg={name:','second.age:','sex:'};obj.select(arg);
9, js 수조 썸 방법의 운용
수조some 방법은 2개의 매개 변수를 받아들인다.하나는 3개의 매개 변수를 받아들일 수 있는 리셋 함수이고, 하나는 실행 상하문을 대표하는 대상이며,some 방법은boolean형을 되돌려준다.
리셋 함수는 전송된 수조에 조건을 충족시키는 방법이 있는지 판단하는 데 쓰인다.
예를 들어, 배열에 요소가 있는지 확인합니다.
 
var arr =[2,3,5,6,7,9];
var id  = 5;
// , 
function back(arr){
     return arr === id;
}
if(arr.some(back)){
     alert('true')
}else{
     alert('false')
}
some는 여러 조건을 동시에 판단하는 등 복잡한 검색을 처리할 수 있습니다.
var found = null;
var points = [ {x: 10, y: 20}, {x: 15, y: 53}, {x: 17, y: 72}];
points.some(function (point) {
 if (point.x > 10 && point.y < 60) { 
 found = point; // found return true;
 } 
 return false;
});
if (found) {
 alert("Found: " + found.x + ", " + found.y); // Found: 15, 53
}

 
우리도 forEach 로 조회할 수 있지만, forEach가 지정한 조건에 도달한 후에는 코드 실행을 중단할 수 없습니다. 추가로 이상을 던져야 forEach의 순환에서 벗어날 수 있습니다.
 
 
------------------------------------------------------------------------
grep () 방법을 사용하여 배열을 필터링할 수 있습니다.

jQuery.grep( array, function(elementOfArray, indexInArray) [, invert ] )


array
유형:
Array
요소를 조회하는 데 사용되는 그룹입니다.

function(elementOfArray, indexInArray)
유형:
Function ()
이 함수는 모든 원소의 비교를 처리한다.첫 번째 파라미터는 검사 중인 그룹의 요소이고, 두 번째 파라미터는 이 요소의 인덱스 값입니다.이 함수는 부울 값을 되돌려야 한다.this는 전역적인 윈도우 대상이 될 것이다.

invert
유형:
Boolean
"invert"가false이거나 제공되지 않으면 함수는 "callback"에서true의 모든 요소로 구성된 그룹을 되돌려줍니다."invert"가true라면, 함수는 "callback"에서false의 모든 요소로 구성된 그룹을 되돌려줍니다.

조건을 충족시키는 수조로 되돌아오기;
확장 링크: http://www.css88.com/jqapi-1.9/jQuery.grep/
-----array의 some 방법을 사용할 수도 있습니다.
다른 것은 썸 방법은 수조에 조건이 충족되면true를 되돌려주고,some 방법에 전달된 매개 변수는 리셋 함수이다.
var array = [1,2,3,4,5,9]
function back(arr){
arr>0//arr 대표수 그룹의 원소
}
array.some(back(array));//true

좋은 웹페이지 즐겨찾기