Javascript:无法从循环内部修改在循环外部声明的数组 var myArray=“aaaaaa”; 对于(变量i=0;i

Javascript:无法从循环内部修改在循环外部声明的数组 var myArray=“aaaaaa”; 对于(变量i=0;i,javascript,arrays,loops,Javascript,Arrays,Loops,由于剪接被注释掉,它只会两次提醒AAAAA。 对于拼接,它会在第一时间提醒AAAA,然后不再提醒。(Javascript在命中拼接后停止工作) 我不知道怎么了。 显然,可以从循环中访问该数组,但为什么不能对其进行修改 欢迎任何帮助,谢谢各位 试试:var myArray=[“aaaaaaa”] 这将myArray声明为数组而不是字符串。尝试:var myArray=[“aaaaaa”] 这将myArray声明为数组而不是字符串。问题是myArray不是数组,请尝试 var myArray = "

由于剪接被注释掉,它只会两次提醒AAAAA。
对于拼接,它会在第一时间提醒AAAA,然后不再提醒。(Javascript在命中拼接后停止工作)

我不知道怎么了。 显然,可以从循环中访问该数组,但为什么不能对其进行修改

欢迎任何帮助,谢谢各位

试试:
var myArray=[“aaaaaaa”]
这将
myArray
声明为数组而不是字符串。

尝试:
var myArray=[“aaaaaa”]

这将
myArray
声明为数组而不是字符串。

问题是
myArray
不是数组,请尝试

var myArray = "AAAAA";
    for(var i = 0; i < ["a", "b"].length; i++)
    {
        alert(myArray);
        var myVar = "C"+myArray[1]+"C";
        myArray[1] = "K";
        //myArray.splice(3,1);
    }
var myArray=[“AAAAA”];
对于(变量i=0;i<[“a”,“b”]。长度;i++)
{
警报(myArray);
var myVar=“C”+myArray[1]+“C”;
myArray[1]=“K”;
myArray.剪接(3,1);
}

问题在于
myArray
不是数组,请尝试

var myArray = "AAAAA";
    for(var i = 0; i < ["a", "b"].length; i++)
    {
        alert(myArray);
        var myVar = "C"+myArray[1]+"C";
        myArray[1] = "K";
        //myArray.splice(3,1);
    }
var myArray=[“AAAAA”];
对于(变量i=0;i<[“a”,“b”]。长度;i++)
{
警报(myArray);
var myVar=“C”+myArray[1]+“C”;
myArray[1]=“K”;
myArray.剪接(3,1);
}

如果要将字符串作为字符数组处理:

var myArray = ["AAAAA"];
    for(var i = 0; i < ["a", "b"].length; i++)
    {
        alert(myArray);
        var myVar = "C"+myArray[1]+"C";
        myArray[1] = "K";
        myArray.splice(3,1);
    }

如果要将字符串作为字符数组处理,请执行以下操作:

var myArray = ["AAAAA"];
    for(var i = 0; i < ["a", "b"].length; i++)
    {
        alert(myArray);
        var myVar = "C"+myArray[1]+"C";
        myArray[1] = "K";
        myArray.splice(3,1);
    }

myArray
不是
Array
,因此会抛出
uncaughttypeerror

假设您希望
myArray
成为
['A','A','A','A','A']
,您可以使用
split()
方法:

var myArray = "AAAAA".split('')
//var myArray='AAAAA';//这不是一个数组。您的意思是:
var myArray='AAAAA'。拆分('');
//var myVar;//你应该在这里申报
//i<[a',b']长度的目的是什么?为什么我不能<2?
对于(变量i=0;i<[a',b'].长度;i++){
警报(myArray.join());//将数组转换回字符串
/** 
*它有函数作用域,而不是块作用域(上面声明)
*(我猜你以后会使用这个值?)
*/
var myVar='C'+myArray[1]+'C';
myArray[1]=“K”;
myArray.剪接(3,1);
}

myArray
不是
数组
,因此会引发
未捕获类型错误

假设您希望
myArray
成为
['A','A','A','A','A']
,您可以使用
split()
方法:

var myArray = "AAAAA".split('')
//var myArray='AAAAA';//这不是一个数组。您的意思是:
var myArray='AAAAA'。拆分('');
//var myVar;//你应该在这里申报
//i<[a',b']长度的目的是什么?为什么我不能<2?
对于(变量i=0;i<[a',b'].长度;i++){
警报(myArray.join());//将数组转换回字符串
/** 
*它有函数作用域,而不是块作用域(上面声明)
*(我猜你以后会使用这个值?)
*/
var myVar='C'+myArray[1]+'C';
myArray[1]=“K”;
myArray.剪接(3,1);
}

正如jdawg所说,myArray不是数组,而是字符串。代码停止,因为它尝试调用字符串中不存在的函数(拼接)时会引发错误

可以在循环中修改数组

在数组中转换字符串的另一种方法是

//var myArray = 'AAAAA'; // This is not an Array did you mean:
var myArray = 'AAAAA'.split('');

//var myVar; // Should declare this here

// What is the purpose of i < ['a', 'b'].length? why not i < 2?
for(var i = 0; i < ['a', 'b'].length; i++) {
    alert(myArray.join()); // Turn Array back into a string

    /** 
     *  This has function scope, not block scope (declare above)
     *  (I'm guessing you use this value later?)
     */
    var myVar = 'C' + myArray[1] + 'C';

    myArray[1] = 'K';
    myArray.splice(3,1);
}

正如jdawg所说,myArray不是数组,而是字符串。代码停止,因为它尝试调用字符串中不存在的函数(拼接)时会引发错误

可以在循环中修改数组

在数组中转换字符串的另一种方法是

//var myArray = 'AAAAA'; // This is not an Array did you mean:
var myArray = 'AAAAA'.split('');

//var myVar; // Should declare this here

// What is the purpose of i < ['a', 'b'].length? why not i < 2?
for(var i = 0; i < ['a', 'b'].length; i++) {
    alert(myArray.join()); // Turn Array back into a string

    /** 
     *  This has function scope, not block scope (declare above)
     *  (I'm guessing you use this value later?)
     */
    var myVar = 'C' + myArray[1] + 'C';

    myArray[1] = 'K';
    myArray.splice(3,1);
}

myArray
不是数组,而是字符串。打开控制台,查看错误。他们将让您了解如何开始修复代码。阅读一两篇关于javascript字符串和数组的教程(),它不是数组(即使你称它为数组)
myArray
不是数组,而是字符串。打开控制台,查看错误。他们将让您了解如何开始修复代码。阅读一两篇关于javascript字符串和数组()的教程,它们不是数组(即使你称之为数组)