如何在javascript中使用大写函数映射数组?

我很感兴趣,如果有任何函数,如来自php的array_map或array_walk。

不需要为所有arrays旅行。 我可以为自己这样做。

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

您可以使用$ .map()将String.toUpperCase() (或String.toLocaleUpperCase() ,如果适用)应用于数组项:

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

请注意$.map()构建一个新数组。 如果要在适当位置修改现有数组,可以使用带有匿名函数的$ .each() :

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

更新:正如afanasy在下面的评论中正确指出的那样,直接映射String.toUpperCase只能在基于Gecko的浏览器中使用。

要支持其他浏览器,您可以提供自己的function:

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

查看JavaScript Array.map以获取官方JavaScript地图function的信息。 您可以在那里使用样本来查看该function的工作原理。 尝试将其复制到示例框中:

 var array = ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab']; var uppers = array.map(function(x) { return x.toUpperCase(); }); console.log(uppers); 

它将打印:

 DOM,LUN,MAR,MER,GIO,VEN,SAB 

这可能是一种矫枉过正,但你也可以这样做

 var upperCaseArray = array.map(String.prototype.toUpperCase.call.bind(String.prototype.toUpperCase)); 

您可以为它实现一个function:

 Array.prototype.myUcase=function() { for (i=0;i 

用法

 var fruits=["Banana","Orange","Apple","Mango"]; fruits.myUcase(); 

结果

 BANANA,ORANGE,APPLE,MANGO 

参考链接

您可以考虑使用提供标准function操作的Underscore.js库。

那么代码就像下面这样简单:

 _.map(array, function (x) { return x.toUpperCase(); }); 

map()在某种程度上类似于array_walk

http://jqapi.com/#p=map

Javascript有一个map()方法。 一个很好的参考资料在http://www.tutorialspoint.com/javascript/array_map.htm

这里是没有创建循环的单行程序或兼容ES3的function(可能更快,因为你只调用了一次OnUCase,还没有测试过)

 // watch out for strings with comma (eg: ["hi, max"]) then use custom join/split() // or just use something safer such as Array.map() var uppercaseArray = array.toString().toUpperCase().split(","); var uppercaseArray = array.join(0).toUpperCase().split(0); var uppercaseArray = (array+"").toUpperCase().split(","); 

我知道派对有点晚了,但我想在此处添加这个作为另一种代表团的方式。

 var array = ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab']; "".toUpperCase.apply(array).split(',') 

类似于之前的for循环答案,这个使用javascript的一些更基本的function:

 function looptoUpper(arr){ var newArr = []; for (var i = 0; i < arr.length; i++){ newArr.push(arr[i].toUpperCase()); } return newArr; } looptoUpper(['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab']);