Heim > Web-Frontend > js-Tutorial > Wie ermittelt und berechnet jQuery die Länge eines Objekts?

Wie ermittelt und berechnet jQuery die Länge eines Objekts?

伊谢尔伦
Freigeben: 2017-06-17 13:26:04
Original
4158 Leute haben es durchsucht

In unserer täglichen Entwicklung wird das Objekt sehr häufig verwendet. Es ist für uns sehr praktisch, die Länge des Arrays zu berechnen, aber wie berechnet man die Länge des Objekts? Angenommen, wir haben ein Bibliotheksprojekt mit einer Reihe von Büchern und Autoren wie dem folgenden:

var bookAuthors = {
    "Farmer Giles of Ham": "J.R.R. Tolkien",
    "Out of the Silent Planet": "C.S. Lewis",
    "The Place of the Lion": "Charles Williams",
    "Poetic Diction": "Owen Barfield"
};
Nach dem Login kopieren

Wir analysieren den aktuellen Bedarf und senden Daten an eine API, aber die Länge des Buches darf 100 nicht überschreiten Daher müssen wir vor dem Senden der Daten berechnen, wie viele Bücher sich insgesamt in einem Objekt befinden. Was machen wir also immer? Wir könnten Folgendes tun:

function countProperties (obj) {
    var count = 0;
    for (var property in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, property)) {
            count++;
        }
    }
    return count;
}
var bookCount = countProperties(bookAuthors);
// Outputs: 4
console.log(bookCount);
Nach dem Login kopieren

Das ist möglich, zum Glück bietet Javascript eine geänderte Methode zur Berechnung der Länge eines Objekts:

var bookAuthors = {
    "Farmer Giles of Ham": "J.R.R. Tolkien",
    "Out of the Silent Planet": "C.S. Lewis",
    "The Place of the Lion": "Charles Williams",
    "Poetic Diction": "Owen Barfield"
};
var arr = Object.keys(bookAuthors);
//Outputs: Array [ "Farmer Giles of Ham", "Out of the Silent Planet", "The Place of the Lion", "Poetic Diction" ]
console.log(arr);
//Outputs: 4
console.log(arr.length);
Nach dem Login kopieren

Lassen Sie uns die verwenden keys-Methode im -Array:

var arr = ["zuojj", "benjamin", "www.zuojj.com"];
//Outputs: ["0", "1", "2"] 
console.log(Object.keys(arr));
//Outputs: 3
console.log(arr.length);
Nach dem Login kopieren

Die Methode Object.keys() gibt eine Liste aller aufzählbaren Selbst-Eigenschaften des angegebenen ObjektsEin Array zurück bestehend aus Attributnamen. Die Reihenfolge der Attributnamen im Array stimmt mit der Reihenfolge überein, die zurückgegeben wird, wenn eine For-In-Schleife zum Durchlaufen des Objekts verwendet wird (der Hauptunterschied zwischen den beiden besteht darin, dass For-In auch ein Objekt von seinem Prototyp aus durchläuft Kette Aufzählbare Eigenschaften, geerbt von auf ).

Rufen Sie die Längeninstanz eines Objekts in JavaScript ab:

/**
 *  jQuery 扩展方法
 *
 *      $.Object.count( p )
 *          获取一个对象的长度,需要指定上下文,通过 call/apply 调用
 *          示例: $.Object.count.call( obj, true );
 *          @param  {p}             是否跳过 null / undefined / 空值
 *
 */
$.extend({
    //  获取对象的长度,需要指定上下文 this
    Object:     {
        count: function( p ) {
            p = p || false;
         
            return $.map( this, function(o) {
                if( !p ) return o;
                 
                return true;
            } ).length;
        }
    }
});
 
 
//  示例
//  ---------------------------------------------------------------------------
var obj = {
    a:      null,
    b:      undefined,
    c:      1,
    d:      2,
    e:      'test'
};
 
//  不过滤空值
console.log( $.Object.count.call( obj ) );
 
//  过滤空值
console.log( $.Object.count.call( obj, true ) );
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie ermittelt und berechnet jQuery die Länge eines Objekts?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage