Когда я пытаюсь запустить этот скрипт, он обновляет мой массив на секунду, но кажется, что после запуска функции документ возвращается в нормальное состояние.
Каков наилучший способ решить эту проблему?
<p id = "demo"></p>
<form>
<input type = "submit" onclick = "add_value()"/>
</form>
<script>
var array = ["1", "2", "3"];
document.getElementById("demo").innerHTML = array[3];
function add_value() {
array.push("69");
document.getElementById("demo").innerHTML = array[3];
document.getElementById("demo2").innerHTML = array[3];
}
</script>
@JackBashford Это будет оцениваться как undefined, а не как ошибка iirc.
Что вы подразумеваете под «но кажется, что после запуска функции документ возвращается в нормальное состояние»? Какое точное поведение вы видите в отношении до и после нажатия кнопки?
Как объяснялось выше, array[3] не существует. Индекс массива будет начинаться с 0, поэтому array[2] вернет третий элемент в array, а array[0] вернет первый элемент в array.
@JackBashford, как сделать, чтобы массив [3] существовал вне функции? Я хочу нажать кнопку, чтобы добавить запись в массив и обновить демонстрационный абзац.
Возможный дубликат Как сделать, чтобы кнопка HTML не перезагружала страницу



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Поскольку у вас есть ввод типа submit, браузер перезагружает страницу после нажатия кнопки.
Вместо этого используйте
<input type = "button"
Ну, вне вашей функции
array[3]не существует, так что будет ошибка.