Javascript JS数组-高级分配
这与Javascript中的数组有关,我正试图在复杂的逻辑中使用这些数组 考虑以下代码:Javascript JS数组-高级分配,javascript,Javascript,这与Javascript中的数组有关,我正试图在复杂的逻辑中使用这些数组 考虑以下代码: a['a1'] = 'AJA' 我们知道,这与a.a1='AJA'相同(前提是给出了正确的定义) 因此,如果我们继续解释这一点: console.log(a.a1[0]) console.log(a.a1[1]) console.log(a.a1[2]) console.log(a.a1) 它记录: A J A AJA 现在,我只需要在第4个位置分配一个新字符。 当我尝试a[a1][3]='Y'或a.
a['a1'] = 'AJA'
我们知道,这与a.a1='AJA'
相同(前提是给出了正确的定义)
因此,如果我们继续解释这一点:
console.log(a.a1[0])
console.log(a.a1[1])
console.log(a.a1[2])
console.log(a.a1)
它记录:
A
J
A
AJA
现在,我只需要在第4个位置分配一个新字符。
当我尝试a[a1][3]='Y'
或a.a1[3]='Y'
然后尝试console.log(a.a1)
时,它仍然显示AJA
,而不是AJAY
我知道我们可以使用字符串连接来实现这一点,即。
a['a1']=a['a1']+'Y'
并实现这一点
但是为什么第一种方法不起作用呢?还有什么其他方法可以做到这一点呢?字符串是不可变的。这意味着如果你创建了一个字符串,你就不能再修改它了。所以你的
a1
对第四个字符一无所知
你可以看到这个例子。我试图更改已创建字符串的第二个字符,但它将不再更改
设a={};
a['a1']='AJA';
a、 a1[1]=“a”;
控制台日志(a.a1)代码>据我所知,a[a1][3]或a.a1[3]是一个字符串变量,您可以将其视为:
var s='ss'
计算s[0]时,将得到一个字符串值。因此,当您将任何字符串值赋给s时,将不会得到“ss”+anyvalue,而是anyvalue.:) 请不要使用具有自定义属性的数组,顺便说一句,这不是数组问题,而是字符串问题。如果要实现此行为,需要将字符串声明为字符数组<代码>var str=“AJA”——>var strArr=[“A”、“J”、“A”]
,编辑完字符数组后,需要将其转换回字符串。var str=“AJA”;var strArr=str.split(“”);strArr[3]=“Y”;str=strArr.join(“”)代码>@LearnHowToBeTransparent这可能对一个简单的数组有效。但不是这里……是的,它们是不可变的。但这是否意味着字符串连接是完成这一任务的唯一方法?@A.J.有很多方法。但是字符串连接是一个简单的方法“通过什么其他方法可以做到这一点?”你可以创建一个函数来获取参数char和index,但是在后台你需要使用字符串连接:)你基本上是在确认OP已经计算出了什么,而没有提供答案。字符串本身没有赋值,仅适用于属性(不是s=…
,而是s[2]=…
)。这与问题有什么关系?仅举一个例子,当您尝试评估a[a1][3]或a.a1[3]时,您将得到与我上面提到的示例相同的类型。试一试(a[a1][3])