2016-03-23 4 views
1

すべての配列インデックスを小文字の文字列にしようとしていますが、動作しません。私はここで他の答えを見て、toLowerCaseを追加する前にtoString()を使用するようなソリューションを試しましたが、うまくいきません。Javascript - toLowerCase()の配列インデックスを作成しない

問題のjsfiddleを作成しましたhere

JS:

$(colorArr).each(function(i, item) // loop thru each of elements in colorArr and make lowercase + trim 
{ 
    if(colorArr[i] !== undefined) // check if colorArr index undefined 
     { 
     colorArr[i].toString().toLowerCase().trim(); // FIX HERE 
     /* TRIED - DIDN'T WORK! 
     colorArr[i].toLowerCase().trim(); 
     */ 
     } 
}); 
+0

なぜトリムは本当にトリミングされないのですか?私の場合は動作しませんトリム](http://stackoverflow.com/questions/18685076/why-does-the-trim-doesnt-really-trim-trim-not-working-in-mycase) – JJJ

+0

@juhanaこれはコード内にあるにもかかわらず、 'trim()'とは関係がありません。私は 'toLowerCase()'についてしか尋ねません。 – TheAmazingKnight

+0

解決策は同じです:LowerCaseに適用してトリムしますが、結果は何もしません。 – JJJ

答えて

3

する必要がありますバック

を値を設定する必要があります

https://jsfiddle.net/af91r2cq/6/

colorArr[i] = colorArr[i].toString().toLowerCase().trim(); // FIX HERE 

あなたの方法は本当に近かった;)配列内のすべての定義された値が小文字に変更がそうのようなjQuery.map機能を使用することです

+0

他の変数 'checkedAttr'を比較すると、両方が文字列の配列である場合、' colorArr'ではなく 'checkedAttr'に対してなぜ機能しましたか? – TheAmazingKnight

2

あなたは私はあなたのフィドルを更新それは

colorArr[i] = colorArr[i].toString().toLowerCase().trim(); // FIX HERE 

それとも単に

colorArr = colorArr.map(function(value){ return value ? value.toLowerCase().trim() : ""; }); 
+0

ありがとうございました.... – Raj

1

別の方法:

可能
colorArr = $.map(colorArr, function(item, i) { 
    if(item !== undefined) { 
    return item.toString().toLowerCase().trim(); 
    } 
}); 
関連する問題