Вот это скрипку: https://jsfiddle.net/reko91/998woow6/Каждый элемент в моем массиве, перезаписывается последним элементом в толчке
Это базовая версия части в моем проекте. В основном, как говорит вопрос, когда я нажимаю элемент в мой массив, каждый элемент уже в массиве, перезаписывается последним элементом нажат
Чтобы приструнить саму проблему:.
Пресс кнопка
AddToArray
, это подталкиваетnodes
иedges
к объекту, а затем толкает этот объект в массивthisArray
.Затем нажмите либо
DeleteNodes
илиDeleteEdges
, которые поп последний элемент от илиnodes
илиedges
массивов.Затем нажмите
AddToArray
снова нажать обновленныйnodes
иedges
в объект, а затем вthisArray
массив, и вы увидите, что исходный объект, объект с индексом 0, заменяется объектом только нажат.
Я пробовал смотреть в Интернете, он должен иметь какое-то отношение к закрытию, но мне не повезло с этим.
Вот код, если это проще, чтобы посмотреть здесь:
var thisArray = [];
var nodes = [1, 2, 3, 4, 5];
var edges = [1, 2, 3, 4, 5];
function addToArray() {
var thisData = {
nodes: nodes,
edges: edges
}
thisArray.push(thisData)
console.log('thisArray')
console.log(thisArray)
}
function deleteNodes() {
nodes.pop();
console.log(nodes)
}
function deleteEdges() {
edges.pop();
console.log(edges)
}
<button onclick='addToArray()'>
AddToArray
</button>
<button onclick='deleteNodes()'>
Delete Nodes
</button>
<button onclick='deleteEdges()'>
Delete Edges
</button>
Отличный материал. Я не понимал, что я только ссылаюсь, что вызвало проблему обновления всех элементов в массиве. Спасибо за помощь :) – thatOneGuy