С учетом следующего фрагмента:
const myArray = ["foo", "bar", "baz"];
myArray.someProperty = "foobar";
console.log(myArray)
В Safari будет отображаться только это:
["foo", "bar", "baz"] (3)
В других браузерах, таких как Chrome и Firefox, будет отображаться свойство someProperty
вместе с собственными свойствами, такими как length
:
Array(3)
0: "foo"
1: "bar"
2: "baz"
someProperty: "foobar"
length: 3
Стоит отметить, что такие вещи, как console.dir
, console.table
или console.log(JSON.stringify(myArray))
не будут работать для отображения таких свойств.
Есть ли способ обойти это ограничение в Safari? Очевидно, я мог бы просто сделать console.log(myArray.someProperty)
, но моя главная цель - проверка , какие свойства у массива (я не тот, кто создает массив, он создается библиотекой JS), поэтому эти свойствамне неизвестно.