JSFiddle - React, Tailwind, and code Playground

by Udhay

HTML

<script src="http://knockoutjs.com/downloads/knockout-3.2.0.js"></script>
<!-- ko foreach: arrayLsit -->
<div  data-bind="text: citation"></div>
<!-- /ko -->

JavaScript

var ViewModel = function(){
var self = this;

this.arrayLsit = ko.observabelArray();

allBooks = [{citation: 'Zen'},{citation: 'zen'},{citation: 'aen'},{citation: 'Aen'},{citation: 'Cen'},{citation: 'cen'},{citation: ' Zen'},{citation: '#Zen'}];
var sortedList = allBooks.sort(function(a,b){
    var regex = /(\s*<([^>]+)>)/ig;
    var aCitation = a.citation.replace(regex, "");
    var bCitation = b.citation.replace(regex, "");
    var alc = aCitation.toLowerCase(), blc = bCitation.toLowerCase();
    return alc > blc ? 1 : alc < blc ? -1 : 0;
}); 
this.arrayLsit.push.apply(this.arrayLsit, sortedList);
};
ko.applyBindings(new ViewModel());