Это связано с массивами в Javascript, которые я пытаюсь использовать в сложной логике.JS массивы - расширенное назначение
Рассмотрим следующий код:
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'
и получить это.
Но почему не первый способ работал? Какими другими способами это можно сделать?
, пожалуйста, не используйте массивы с настраиваемыми свойствами, кстати, это не проблема с массивом, а проблема с строкой. –
Если вы хотите добиться этого, вам нужно объявить строку как массив символов. 'var str =" AJA "; -> var strArr = ["A", "J", "A"]; ', когда вы закончите редактирование char-массива, вам нужно преобразовать его обратно в строку. – DomeTune
'var str =" AJA "; var strArr = str.split (''); strArr [3] = "Y"; str = strArr.join (''); ' –