2012-03-30 3 views

답변

19

에서 당신은 (해당되는 경우, 또는 String.toLocaleUpperCase()) 배열 항목에 String.toUpperCase()을 적용하기 위해 $.map()를 사용할 수 있습니다.

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

업데이트 : afanasy 정당 아래 코멘트에 지적으로 직접 매핑 String.toUpperCase는 게코에서 작동하면 현재 위치에서 기존 배열을 수정하려면, 당신은 익명의 기능을 $.each()을 사용할 수 있습니다 기반 브라우저.

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

문자열입니다. toUpperCase는 정의되어 있지 않으므로 $ .map이 작동하지 않습니다. –

+0

@afanasy, true, Firefox를 너무 많이 사용하고 있습니다. 휴대용 매핑 솔루션으로 내 대답을 업데이트했습니다. –

4

표준 기능 작동을 제공하는 Underscore.js 라이브러리를 사용할 수 있습니다.

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

을 또한'_.map (배열, _.upperCase)' –

2

자바 스크립트지도() 메소드가 있습니다

그런 다음 코드는 다음과 같이 간단 할 것입니다. $.map() 새로운 배열을 구축

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

하는 것으로 : 좋은 참조가 http://www.tutorialspoint.com/javascript/array_map.htm

5

당신은 그것을 위해 기능을 구현할 수 있습니다 :

Array.prototype.myUcase=function() 
{ 
    for (i=0;i<this.length;i++) 
    { 
    this[i]=this[i].toUpperCase(); 
    } 
} 

USAGE

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

다른 브라우저를 지원하기 위해, 당신은 당신의 자신의 기능을 제공 할 수 있습니다 결과

BANANA,ORANGE,APPLE,MANGO 

참조 LINK

7

체크 아웃 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 
2

을 그리고 여기에 한 줄은 루프 또는 ES3 호환 (빨리 될 수있는 기능을 만들지 않고있다 한 번만를 toUpperCase를 호출하기 때문에,

// 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(","); 
6

이것은 잔인한 일 수 있음) 테스트를하지 않은하지만 당신은 또한

012을 수행 할 수 있습니다
var upperCaseArray = array.map(String.prototype.toUpperCase.call.bind(String.prototype.toUpperCase)); 
+0

@ nkron의 대답은 이것과 비슷하지만 덜 장황합니다. –

+2

코드의 'String.prototype.toUpperCase.call' 부분이 [Function 's call] (http://www.javascripture.com/Function#call) 메소드에 액세스하기 때문에이 코드는 다소 혼란 스럽습니다. 이 메서드는 모든 함수에 대해 동일하므로 비헤이비어를 변경하지 않고 .call의 왼쪽에 모든 함수를 지정할 수 있습니다. toUpperCase 함수의 특별한 기능이 아닌 Function의 호출을 사용하고 있음을 명시하기 위해'Function.prototype.call ... '으로 변경하는 것이 좋습니다. – nkron

+0

더 명확한 예는 다음과 같습니다 :'[ 'a', 'b', 'c']. map (Function.prototype.call.bind (String.prototype.toUpperCase))' –

1

나는 파티에 조금 늦다는 것을 알고 있지만, 이것을 위임 방법으로 추가하고 싶다. 루프 응답에 대한 이전과 마찬가지로

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

"".toUpperCase.apply(array).split(',') 
+0

와우 .... 일. 왜/왜 변환 배열을 문자열 – aWebDeveloper

+0

에 적용할까요? 'toUpperCase'를 원했기 때문에이 기능을 위임하거나 기능을 빌릴 수 있어야했습니다. 배열을 수행해야하므로, 어떻게 든 "문맥"IN을 "toUpperCase"에 전달해야했습니다. apply (우리가 배열을 사용하고 있기 때문에), 이것을 허용한다. 두 번째 arg를 전달하지 않았으므로 첫 번째 arg "array"가 컨텍스트입니다. 그래서 기본적으로, 그것은 나를 위해 밖으로 확산 ... 그럼 나는 그것을 배열로 다시 설정 분할. –

0

는,이 자바 스크립트의 기본적인 기능 중 일부를 사용

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']); 
관련 문제