【问题标题】:Adding properties to javascript array at the moment of declaration?在声明时向javascript数组添加属性?
【发布时间】:2019-12-04 13:53:37
【问题描述】:

我知道我们可以像这样向已经定义的数组添加属性,

var array1 = [1, 2, 3];

array1.prop1 = 'first';
console.log(array1);  // [ 1, 2, 3, prop1: 'first' ]

我的问题是,在声明数组时是否有任何 语法 可以做同样的事情?类似的东西,

var array1 = [1, 2, 3, prop1: 'first']  // SyntaxError: Unexpected token :

附:有人可能会说向数组添加属性并不是一个好的做法。这实际上不是我正在寻找的答案。我只是在问可能性做这样的事情。

【问题讨论】:

  • 请注意,数组对象的“额外”属性很好,但如果您使用JSON.stringify() 序列化数组,它们将不会包含在结果中。
  • 不,没有初始化语法。
  • 请注意,console.log() 的输出将仅包含 Chrome 上的属性。所有其他浏览器只会显示数组的实际内容。

标签: javascript arrays properties


【解决方案1】:

您可以获取一个对象并将其分配给一个数组。

var array1 = Object.assign([], { 0: 1, 1: 2, 2: 3, prop1: 'first' });

console.log(array1);
console.log(array1.prop1);

【讨论】:

  • 如果只是传播[1,2,3]会更容易阅读吗?如{ ...[1,2,3], prop1: 'first' }
  • @Kobe,是或否,因为永远不应使用此代码。它仅用于教育目的。
  • @deceze,请看上面的评论。
  • @NinaScholz 当然,我只是为了更容易编写而提到它,而不是实际使用:P
猜你喜欢
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多