Этот вопрос не вызывает никаких сомнений или проблем. По-видимому, кажется, что я наткнулся на ошибку, возможно, на хром-консоли,
Я использую этот код:
console.log("Before: ", this.selectedScorecard.scorecard_attributes);
let attribute = this.selectedScorecard.scorecard_attributes.find(item => item.id === null || item.id === undefined)
if(attribute) {
let length = this.selectedScorecard.scorecard_attributes.length;
this.selectedScorecard.scorecard_attributes.splice(length-1, 1);
console.log("After: ", this.selectedScorecard.scorecard_attributes);
}
Хорошо, поэтому атрибут представляет собой массив, и он сначала представляет собой массив длиной 2. Теперь я соединяю один элемент из массива и печатаю его значение до и после сращивания.
В хром-консоли в фрагменте перед массивом он показывает (2), указывающий длину как 2, но в самом массиве он показывает длину как 1, а также только один элемент в "Перед консолью массива", в то время как все очевидно, как ожидаемый в "После консоли" я прикрепляю изображение для лучшего понимания
Мне любопытно, кто-нибудь об этом знает? Кто-нибудь сталкивается с этим раньше или я только тот, кто его замечает?
Когда console.log запускается, хром синхронно выводит сводку о том, что там. Массив имеет 2 элемента, поэтому сводные журналы a (2). Chrome сохраняет ссылку на массив, если позже вы решите, что хотите увидеть больше данных, но он не клонирует весь массив.
Позже, когда вы нажимаете, чтобы развернуть массив, он показывает более подробную информацию, но он показывает его на основе того, как он выглядит, когда вы его расширяете, а не когда изначально выполнялся оператор журнала. Так как он имеет только один элемент, это то, что он отображает.
console.log( JSON.stringify( obj ) )
console.log("Before: ", JSON.parse(JSON.stringify(this.selectedScorecard.scorecard_attributes)));