以编程方式构造对象数组

sar*_*ake 3 javascript json

说我希望对象是这样的:

var Book = {
        title: "the catcher in the rye",
        price: "80.98",
        characters: [{name: "holden caulfield", age: 16, height:"6.2"},
                     {name: "phoebe caulfield",age:13, height: "5"}] 
     };
Run Code Online (Sandbox Code Playgroud)

EDITED

问题:characters数组是通过逐个添加一个字符来构建的.如何确保名称,年龄和身高属性的定义如上所述.

有什么效果?

Book.characters.add({name: "phoebe caulfield",age:13, height: "5"});
Run Code Online (Sandbox Code Playgroud)

我希望能够以编程方式定义它,即向对象添加属性,而不是像这样定义它.

这可能吗?

jfr*_*d00 6

您可以在动态代码(而不是静态声明)中执行此操作:

var Book = {};

Book.title = "the catcher in the rye";
Book.price = "80.98";
Book.characters = [];
Book.characters.push({name: "holden caulfield", age: 16, height: "6.2"});
Book.characters.push({name: "phoebe caulfield", age: 13, height: "5"});
Run Code Online (Sandbox Code Playgroud)