ordinal number in javascript
Jan
15
1
3
Here's a slick way to create ordinal numbers in javascript that I found.
function getGetOrdinal(n) { var s=["th","st","nd","rd"], v=n%100; return n+(s[(v-20)%10]||s[v]||s[0]); }
Here's a slick way to create ordinal numbers in javascript that I found.
function getGetOrdinal(n) { var s=["th","st","nd","rd"], v=n%100; return n+(s[(v-20)%10]||s[v]||s[0]); }
At times I feel spoiled using Python, especially when I try to do what seems to be a trivial operation to discover there's not already a construct to do it in whatever language I'm in at the time. One of these instances is when I try to loop over and extract key value pairs out of an array in Javascript. Being in the Python mode I'm usually hoping to find something like the following:
# python for key, value in array: ....
The best I could come up with is to use the each() function from JQuery to loop over each element.
var example = {}; example['apple'] = 1; example['orange'] = 2; $.each(example, function(key, value) { console.log(key); console.log(value); });
Or, for a non-jquery solution:
for(var key in example) { console.log(key); console.log(example[key]); }
You may already be familiar with using html named anchor tags to auto-scroll the page to a certain section in an html page, which would look something like this:
<a id="button" href="#tag">link</a> ... <a name="tag">anchor</a>
An alternative use for anchor tags is to change and detect the tag value in the url on the fly in order to initialize certain states with javascript-driven content. This is handy as it lets people bookmark the location and the page will initialize properly even in heavy ajax environments. It's surprisingly easy to interact dynamically with the url anchor tag object.
You can detect the current anchor value of the url in javascript through "location.hash" like this:
if(location.hash == '#tag') { // initialize content ... }
You can also dynamically change the anchor tag in the url just by setting "location.hash" like so:
// location.hash = 'value'; $('a#button').click(function(event) { event.preventDefault(); // set the anchor value // I like to strip the hash out of the href value; you can use your own method of choice to determine the anchor. location.hash = $(this).attr('href').replace('#', ''); // do something important ... });
These examples use JQuery to simplify the code.
This is a stepwise procedure to generate a random number within a given range in JavaScript.
var number = Math.random(); // generate a random decimal between 0 and 1 number *= 10; // scale the number so that it falls between the range 0 and 10 (or any number you'd like to make the max limit) number = Math.ceil(number); // round the result up to the nearest whole number
You can combine this into one line to easily create a random number generator:
var number = Math.ceil(10 * Math.random());
Sometimes you need to dynamically detect the browser's scroll position. Dealing with browser inconsistencies is a PITA, but here is a javascript function that I use that gets the job done.
function getScrollXY() { var x = 0, y = 0; if( typeof( window.pageYOffset ) == 'number' ) { // Netscape x = window.pageXOffset; y = window.pageYOffset; } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { // DOM x = document.body.scrollLeft; y = document.body.scrollTop; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { // IE6 standards compliant mode x = document.documentElement.scrollLeft; y = document.documentElement.scrollTop; } return [x, y]; }
You can then call it like so:
var xy = getScrollXY(); var x = xy[0]; var y = xy[1];