web-dev-qa-db-ja.com

javascriptで大文字関数を使用して配列をマップする方法は?

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');
18
user1236048

$。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();
});
_
20

公式の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
7
nkron

これはやり過ぎかもしれませんが、あなたもすることができます

var upperCaseArray = array.map(String.prototype.toUpperCase.call.bind(String.prototype.toUpperCase));
6
Sharat M R

そのための関数を実装できます。

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 

参照 [〜#〜]リンク[〜#〜]

5
Sujit Agarwal

標準の機能操作を提供する nderscore.js ライブラリの使用を検討できます。

その場合、コードは次のように単純になります。

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

そして、これが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(",");
3
Endless

map()array_walkに似ています

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

3
mamoo

Javascriptにはmap()メソッドがあります。良いリファレンスは http://www.tutorialspoint.com/javascript/array_map.htm

2
Chetter Hummin

パーティーに少し遅れていることは理解していますが、これを別の代表団のやり方としてここに追加したいと思いました。

var array = ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'];

"".toUpperCase.apply(array).split(',')
1
james emanon

以前の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']);