Umfangreiche JavaScript Arrays durchsuchen

“Einfache” Suchalgorithmen gehen meist so vor, alle Elemente des Arrays zu durchlaufen, bis der gesuchte Wert gefunden ist. Bei großen Arrays, können durch andere Algorithmen, kleinere oder größere Geschwindigkeitsvorteile erzielt werden – abhängig von Größe des Feldes und Anzahl der Suchoperationen. Ein Beispiel dafür wäre die binäre Suche, bei der das Feld aber sortiert sein muss. Sie basiert auf einer einfachen Form des Schemas Teile und Herrsche. Einfach gesagt, halbiert sich die Länge des Suchbereiches so von Schritt zu Schritt und spätestens bei einer Suchbereichslänge von 1, ist das Element gefunden.

 Array.prototype.bsearch = function(value) { var high = this.length, low = -1, mid; while(high - low > 1) { if(this[mid = high + low >> 1] < value) { low = mid; } else { high = mid; } } return this[high] != value ? -1 : high; } 
Eric Lippmann
Eric Lippmann
Lead Senior Developer

Eric kam während seines ersten Lehrjahres zu NETWAYS und hat seine Ausbildung bereits 2011 sehr erfolgreich abgeschlossen. Seit Beginn arbeitet er in der Softwareentwicklung und dort an den unterschiedlichen NETWAYS Open Source Lösungen, insbesondere inGraph und im Icinga Team an Icinga Web. Darüber hinaus zeichnet er sich für viele Kundenentwicklungen in der Finanz- und Automobilbranche verantwortlich.

JIT – Javascript more Interactive Than ever

We are pretty excited to hear that JIT (JavaScript InfoVis Toolkit) developed by Nicolas Garcia Belmonte, has got a heap of new features coming in version 2.0. The coolest Javascript library we’ve come across, JIT makes viewing dry data like your server landscape, as mesmerizing as a rubric cube – you just can’t stop playing with it.
Ranging from radial layouts of tree directories, space trees and pie graphs in pie graphs, JIT has some ingenious ways of showing relationships between things. For example the Rgraphs allow users to click on nodes to zoom into, while adjusting the overall graph to still show its relationships to other nodes. Thanks to precisely this visualisation, which Icinga web developers have used for status maps – we can click between hosts and see the dependencies that exist.

We like JIT because it’s so easily extensible, all visualization classes can be added to or written over, and combined to create completely new views. It also displays well on all the popular browsers like Firefox, IE, Safari etc, and works well with any DOM manipulation framework – whilst being of course open source under BSD.
[youtube]//www.youtube.com/watch?v=CpXpAiZT1n0[/youtube]
Believe it or not as Nicolas promises in his JIT blog, graphs can get more dynamic than that – check out his sneak-peak videos of new zooming and panning functions, animated and interactive tree maps which allow nodes to be deleted and shifted around. Crazy looking stuff and we’re looking forward to it!