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" };
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);
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);
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);
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 ) );
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!