Мне нужно отслеживать изменения между массивом до его переупорядочения и после его переупорядочения. У меня есть две переменные originalOrder
и rulesetOrder
. Мой компонент привязан к rulesetOrder
, так что когда я перемещаю элемент, он обновляет этот массив, чтобы отразить его индекс в массиве. Каждый раз, когда я переупорядочиваю, происходит событие, и я сравниваю originalOrder
с rulesetOrder
. В конце всех сравнений я установил originalOrder
, равный новому обновленному rulesetOrder
.Состояние отслеживания состояния массива
Первый раз, когда я перестраиваю, это нормально, originalOrder
отличается от нового (rulesetOrder
). Если я перехожу во второй раз, то originalOrder
, кажется, автоматически изменился с rulesetOrder
, поэтому не показывает различий между этими двумя массивами.
Вот мой код, может ли кто-нибудь помочь мне с тем, что я делаю неправильно, так что originalOrder
всегда равен предыдущему состоянию массива, когда событие снова запущено?
OnReorder()
{
console.log("Start: " + JSON.stringify(this.originalOrder));
console.log("New Order:" + JSON.stringify(this.rulesetOrder));
this.originalOrder = this.rulesetOrder;
}
Когда я установил первоначальный порядок, равный rulesetOrder
, делает это связать их вместе, так что, когда один изменяет другой будет, а? Есть ли способ обойти это?
Первый раз:
Начало: [ "ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f", "1caf3416-9853-49eb-8bda-c3b9017a204a", «9e5fe94d-6c0e-4b85-85f4-38a074badfeb "]
New Order: [" 1caf3416-9853-49eb-8bda-c3b9017a204a», "ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f", "9e5fe94d-6c0e-4b85-85f4-38a074badfeb"]
2-й раз:
Начало: [ "ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f", "1caf3416-9853-49eb-8bda-c3b9017a204a", "9e5fe94d-6c0e-4b85-85f4-38a074badfeb"]
New Order: [ "ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f", "1caf3416-9853-49eb-8bda-c3b9017a204a", "9e5fe94d-6c0e-4b85-85f4-38a074badfeb"]
Когда вы устанавливаете 'this.originalOrder = this.rulesetOrder;', это означает, что 'originalOrder' указывает на тот же массив, что и' rulesetOrder'. Вы должны сделать копию 'rulesetOrder' и установить для него' originalOrder'. –
Ха ... Я чувствую себя такой нуб. Javascript передает массивы по ссылке, поэтому машинопись затем делает это, так как она переводится в javascript ... – Bohms27