Phpのarray_mapやarray_walkのような関数があるかどうか興味があります。
すべてのアレイを移動するためのは必要ありません。私は自分でそれを行うことができます。
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ベースのブラウザーでのみ機能します。
他のブラウザをサポートするために、独自の機能を提供できます。
_var upperCasedArray = $.map(array, function(item, index) {
return item.toUpperCase();
});
_
公式のJavaScriptマップ関数については、 JavaScript Array.map を確認してください。そこでサンプルを試して、関数がどのように機能するかを確認できます。これをサンプルボックスにコピーしてみてください。
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));
そのための関数を実装できます。
Array.prototype.myUcase=function()
{
for (i=0;i<this.length;i++)
{
this[i]=this[i].toUpperCase();
}
}
[〜#〜]使用法[〜#〜]
var fruits=["Banana","Orange","Apple","Mango"];
fruits.myUcase();
[〜#〜]結果[〜#〜]
BANANA,ORANGE,Apple,MANGO
標準の機能操作を提供する nderscore.js ライブラリの使用を検討できます。
その場合、コードは次のように単純になります。
_.map(array, function (x) { return x.toUpperCase(); });
そして、これがES3互換のループや関数を作成しないワンライナーです。toUpperCaseを1回だけ呼び出すので、非常に高速です。
// 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(",");
map()
はarray_walk
に似ています
Javascriptにはmap()メソッドがあります。良いリファレンスは http://www.tutorialspoint.com/javascript/array_map.htm
パーティーに少し遅れていることは理解していますが、これを別の代表団のやり方としてここに追加したいと思いました。
var array = ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'];
"".toUpperCase.apply(array).split(',')
以前のforループの回答と同様に、これはjavascriptのより基本的な機能のいくつかを使用します。
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']);