字符串Javascript中某些字符索引的大写形式

字符串Javascript中某些字符索引的大写形式,javascript,string,split,Javascript,String,Split,好的,我想在下面有一个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)){

好的,我想在下面有一个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
});
$(文档).ready(函数(){
var str='post';//主题字符串
var arr=[0,2];//到大写字符索引0和2
str=str.split(“”);
对于(变量i=0;i
你可以看到它在这里运行

现在我想要的是提供一个主题字符串和一个数组

主题字符串是要处理的字符串,数组包含将表示字符串中的字符索引为大写的数值

我的脚本是否遗漏了某些内容?这就是为什么我会得到令人失望的结果?

$(document).ready(function()){
$(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
});
var str='post';//主题字符串 var arr=[0,2];//到大写字符索引0和2 str=str.split(“”); 对于(变量i=0;i
检查文档中是否存在错误。它返回找到的元素的索引,如果未找到,则返回
-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
});
$(文档).ready(函数(){
var str='post';//主题字符串
var arr=[0,2];//到大写字符索引0和2
str=str.split(“”);
对于(变量i=0;i

2件我认为不对的事情:

  • 无需拆分str,您可以正常循环

  • 您错误地获得了inArray()。下面的代码片段来自

  • $.inArray()方法类似于JavaScript的本机.indexOf()方法,当>未找到匹配项时,它返回-1。如果数组中的第一个元素与值匹配,$.inArray()返回0


    因此,当
    inaray
    为未找到的索引返回-1时,如果
    语句变为true,则返回
    ,因此得到的结果为“PoST”。

    我将重新编写为

    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);
    
    var str='post'//主题字符串
    var-arr=[0,2]//到大写字符索引0和2
    str=str.split(“”);
    对于(i=0;i