使用JavaScript/jQuery中的属性构建具有数组的普通对象

Fél*_*ier -2 javascript jquery

考虑一下:

var items = {};
var id = 'varID';
if (typeof items.id == 'undefined') {
    items.id = {};
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这将空属性分配id给普通对象items.

如何使用变量将属性分配给varID普通对象?itemsid

ste*_*teo 5

尝试

items[id] = items[id] || {}; //Does the same work as the if statement
Run Code Online (Sandbox Code Playgroud)

而不是items.id.有了这个,您可以分配动态属性.(相信我,我曾经遇到过同样的问题.)

或者你可以使用Object.defineProperty(obj, prop, descriptor)(有点不同).

引用文档:

The Object.defineProperty() method defines a new property directly on an object 
or modifies an existing property on an object, and returns the object.
Run Code Online (Sandbox Code Playgroud)

Object.defineProperty()中查看更多内容.

这是两种方法.显然,第二个与第一个更简单的有点不同.

  • 不,它不会将其转换为`array`. (6认同)