how to map an array with uppercase function in javascript?

user1236048 picture user1236048 · Mar 30, 2012 · Viewed 23.1k times · Source

I'm interested if there is any function like array_map or array_walk from php.

Don't need an for that travels all the array. I can do that for myself.

var array = ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'];
// i would like something like this if exists - function(array, 'upperCase');

Answer

Frédéric Hamidi picture Frédéric Hamidi · Mar 30, 2012

You can use $.map() in order to apply String.toUpperCase() (or String.toLocaleUpperCase(), if appropriate) to your array items:

var upperCasedArray = $.map(array, String.toUpperCase);

Note that $.map() builds a new array. If you want to modify your existing array in-place, you can use $.each() with an anonymous function:

$.each(array, function(index, item) {
    array[index] = item.toUpperCase();
});

Update: As afanasy rightfully points out in the comments below, mapping String.toUpperCase directly will only work in Gecko-based browsers.

To support the other browsers, you can provide your own function:

var upperCasedArray = $.map(array, function(item, index) {
    return item.toUpperCase();
});