3

わかりました、以下に jscript が必要です

$(document).ready(function(){
    var str = 'post'; //the subject string
    var arr =[0,2]; //to uppercase character index 0 and 2

    str = str.split("");
    for(var i = 0; i < str.length; i++){
        if($.inArray(i,arr)){
            str[i] = str[i].toUpperCase();
        }
    }
    str = str.join('');
    alert(str);
    //the result must be PoSt
});

そして、あなたはそれがここで走っているのを見るかもしれません

http://jsfiddle.net/laupkram/WfUUp/ </p>

今私が欲しいのは、件名の文字列と配列を提供することです。

サブジェクト文字列は処理される文字列であり、配列には文字列内の文字インデックスを大文字で表す数値が含まれます。

スクリプトで何かを見逃したので、望ましくない結果が得られましたか?

4

4 に答える 4

3
$(document).ready(function() {
    var str = 'post'; //the subject string
    var arr = [0, 2]; //to uppercase character index 0 and 2
    str = str.split("");
    for (var i = 0; i < arr.length; i++) {
        if (str[arr[i]]) {
            str[arr[i]] = str[arr[i]].toUpperCase();
        }
    }
    str = str.join('');
    alert(str);
    //the result must be PoSt
});
于 2012-09-05T09:05:31.310 に答える
3

$.inArrayのドキュメントを確認してください。見つかった、または見つからなかった場合は、要素のインデックスを返します-1

$(document).ready(function(){
    var str = 'post'; //the subject string
    var arr =[0,2]; //to uppercase character index 0 and 2

    str = str.split("");
    for(var i = 0; i < str.length; i++){
        //CHANGE HERE
        if($.inArray(i,arr) != -1){
                          //^^ change this
            str[i] = str[i].toUpperCase();
        }
    }
    str = str.join('');
    alert(str);
    //the result must be PoSt
});

</p>

于 2012-09-05T09:08:19.403 に答える
1

これを次のように書き直します

var str = 'post'; //the subject string
var arr =[0,2]; //to uppercase character index 0 and 2

str = str.split("");
for(i = 0; i < arr.length; i++){
  str[arr[i]]=str[arr[i]].toUpperCase();

}
str = str.join('');
alert(str);

http://jsfiddle.net/NBBgz/

于 2012-09-05T09:12:42.570 に答える
1

ここで間違っている2つのこと:

  1. str は必要ありませんsplit。通常どおりループできます。

  2. あなたはinArray() 間違っています。以下の inArray の jquery API のスニペット

$.inArray() メソッドは、一致が見つからない場合に -1 を返すという点で、JavaScript のネイティブ .indexOf() メソッドに似ています。配列内の最初の要素が値と一致する場合、$.inArray() は 0 を返します。

したがって、inArray見つからなかったインデックスに対して -1 を返すように、ifステートメントは true になり、結果は 'PoST' として取得されます。

于 2012-09-05T09:09:50.920 に答える