export function lastFindInArray (array, callback) { for (let i = array.length - 1; i >= 0; --i) { if (callback(array[i], i, array)) { return array[i] } } } export function escapeHtmlCharacters (text) { const matchHtmlRegExp = /["'&<>]/ const str = '' + text const match = matchHtmlRegExp.exec(str) if (!match) { return str } let escape let html = '' let index = 0 let lastIndex = 0 for (index = match.index; index < str.length; index++) { switch (str.charCodeAt(index)) { case 34: // " escape = '"' break case 38: // & escape = '&' break case 39: // ' escape = ''' break case 60: // < escape = '<' break case 62: // > escape = '>' break default: continue } if (lastIndex !== index) { html += str.substring(lastIndex, index) } lastIndex = index + 1 html += escape } return lastIndex !== index ? html + str.substring(lastIndex, index) : html } export function isObjectEqual (a, b) { const aProps = Object.getOwnPropertyNames(a) const bProps = Object.getOwnPropertyNames(b) if (aProps.length !== bProps.length) { return false } for (var i = 0; i < aProps.length; i++) { const propName = aProps[i] if (a[propName] !== b[propName]) { return false } } return true } export default { lastFindInArray, escapeHtmlCharacters, isObjectEqual }