0

我正在尝试创建以下 json 对象,我想创建具有 tshirt 名称的对象,然后在创建它之后附加一个尺寸列表。

{ tshirt: 'Vintage 80s',
    size: { small: false },
    size: { medium: false },
    size: { large: true }
}

我可以使用这些代码行轻松创建对象

var availability = {};
availability.tshirt = "Vintage 80s";

但是如何将每个大小附加到对象?这是一个 node/express 应用程序,所以我需要一个纯 JavaScript 解决方案。对于 json 对象是否有类似 .push 的东西,就像数组一样?

4

4 回答 4

4

对象键是唯一的。您可能想改用另一个对象:

{ tshirt: 'Vintage 80s',
  size: {
    small: false,
    medium: false,
    large: true
  }
}

然后,您可以使用以下内容访问小尺寸:

availability.size.small
于 2013-08-12T14:37:50.017 回答
2

您不能有多个同名的属性(如size),但您可以将所有大小对象添加到数组中:

{ 
    tshirt: 'Vintage 80s',
    sizes: [
        { small: false },
        { medium: false },
        { large: true }
    ]
}

注意:这不是 JSON,只是一个普通的 JavaScript 对象字面量。JSON 是一种用于表示和交换数据的字符串表示法。

于 2013-08-12T14:38:13.987 回答
1

您现在有一个带有重复键(大小)的对象。我建议创建另一个属性“sizes”并向其添加一个带有对象的数组,表示尺寸的键值对。

{ tshirt: 'Vintage 80s',
  sizes: [{ small: false },
     { medium: false },
     { large: true }]
}


var availability = {};
availability.tshirt = "Vintage 80s";
availability.sizes = [{ small: false }, { medium: false }, { large: true }]];
于 2013-08-12T14:39:52.430 回答
1

您可以像设置tshirt

//Create an object of sizes
var sizes = {
    small: false,
    medium: false,
    large: true
}

//Create your availability object.
var availability = {};
availability.tshirt = "Vintage 80s";

//Assign the sizes
availability.sizes = sizes;

//Log the results, change out small for medium or large
console.log(availability.sizes.small);
于 2013-08-12T14:39:52.730 回答