Heim > Web-Frontend > js-Tutorial > Erstellen von ArrayList-Beispielcode in JavaScript_Javascript-Tipps

Erstellen von ArrayList-Beispielcode in JavaScript_Javascript-Tipps

WBOY
Freigeben: 2016-05-16 16:36:06
Original
1635 Leute haben es durchsucht

Wir haben die API des JavaScript-Arrays bereits früher eingeführt. Das Array selbst ist sehr leistungsfähig. Es kann jeden Typ speichern und seine Länge wird automatisch erweitert. Es bietet auch Durchlauf-, Filter- und andere Methoden zum Betreiben von Arrays.

Es übertrifft einfach das Java-Array (feste Länge, einzelner Typ). Die Sammlungsklasse in Java soll den Mangel an Arrays ausgleichen. Die meisten ihrer unteren Schichten verwenden Object []-Speicher, der nur eine dynamische Erweiterungsstrategie bietet. Natürlich ist der Reichtum der JDK-API für andere Sprachen schwierig übereinstimmen.

Aber das tut meiner Liebe zu Java und JavaScript keinen Abbruch.

Java ist wie eine Frau mittleren Alters. Beim Aufbau eines großen verteilten Systems kann man ihre aufrichtigen Lehren widerspiegeln

Und JavaScript ist wie ein aufkeimendes Mädchen. Jedes Mal, wenn es blüht, wird es Wellen in Ihrem Herzen hervorrufen. Es muss sorgfältig trainiert werden, bevor es von Ihnen verwendet werden kann.

Okay, verzeihen Sie mir die unangemessene Metapher, lass uns darüber reden.

/** 
*@class ArrayList 
*@description 
*@time 2014-09-16 21:59 
*@author StarZou 
**/ 

function ArrayList(arr) { 
this._elementData = arr || []; 
} 

var arrayListPrototype = { 

'_arrayPrototype': Array.prototype, 

'_getData': function () { 
return this._elementData; 
}, 

'size': function () { 
return this._getData().length; 
}, 

'isEmpty': function () { 
return this.size() === 0; 
}, 

'contains': function (obj) { 
return this.indexOf(obj) > -1; 
}, 

'indexOf': function (obj) { 
var i , data = this._getData(), length = data.length; 
for (i = 0; i < length; i++) { 
if (obj === data[i]) { 
return i; 
} 
} 
return -1; 
}, 

'lastIndexOf': function (obj) { 
var i , data = this._getData(), length = data.length; 
for (i = length - 1; i > -1; i--) { 
if (obj === data[i]) { 
return i; 
} 
} 
return -1; 
}, 

'get': function (index) { 
return this._getData()[index]; 
}, 

'set': function (index, element) { 
this._getData()[index] = element; 
}, 

'add': function (index, element) { 
if (element) { 
this.set(index, element); 
} else { 
return this._getData().push(index); 
} 
}, 

'remove': function (index) { 
var oldValue = this._getData()[index]; 
this._getData()[index] = null; 
return oldValue; 
}, 

'clear': function () { 
this._getData().length = 0; 
}, 

'addAll': function (index, array) { 
if (array) { 
this._getData().splice(index, 0, array); 
} else { 
this._arrayPrototype.push.apply(this._getData(), index); 
} 
} 

}; 

ArrayList.prototype = arrayListPrototype;
Nach dem Login kopieren
// Test 代码 
var arr = new ArrayList([3, 6, 5, 'xyz', 'foo', 'xyz']); 

console.log(arr.contains('xyz')); 
console.log(arr.indexOf('xyz')); 
console.log(arr.lastIndexOf('xyz')); 
console.log(arr.get(2)); 
arr.addAll([1, 2, 3]); 
console.log(arr);
Nach dem Login kopieren

Der obige Code implementiert einen Teil davon, und es gibt noch Optimierungsbereiche,

In Zukunft werde ich Zeit haben, JavaScript zu schreiben, um Klassen zu simulieren, die Baum-, Stapel-, Warteschlangen-, Karten- und andere Datenstrukturen implementieren.

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