在Safari的控制台中显示数组属性

问题描述 投票:0回答:1

给出以下代码段:

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.dirconsole.log(JSON.stringify(myArray))之类的内容无法显示这些属性。

Safari中是否有针对此限制的解决方法?显然,我可以执行console.log(myArray.someProperty),但是我的主要目标是checking数组具有哪些属性(我不是创建数组的人,而是由JS库创建的),所以这些属性对于我。

javascript safari console.log
1个回答
-1
投票

这是因为数组未在键值对中存储元素,因此someProperty将用作键。而是将对象以及其他值存储在该数组中,如下所示:

const myArray = ["foo", "bar", "baz"];
myArray.push({
  someProperty: "foobar"
});
console.log(myArray)
© www.soinside.com 2019 - 2024. All rights reserved.