这是一个有效的JavaScript对象吗?
var sections =
{
{ name: 'SERVER', isKeyValuePair: true },
{ name: 'TYPES', isKeyValuePair: false },
{ name: 'USERS', isKeyValuePair: false }
};
我如何访问它?
我将知道名称('SERVER'等),并希望获得isKeyValuePair属性的true或false值。
此对象是否有更好的布局,我仍然可以根据搜索名称访问keyvaluepair属性?
非常感谢
乔
答案 0 :(得分:7)
这是一个有效的JavaScript对象吗?
没有。在对象文字内,您需要key: value
对。
此对象是否有更好的布局,我仍然可以根据搜索名称访问keyvaluepair属性?
这是有效的:
var sections =
[
{ name: 'SERVER', isKeyValuePair: true },
{ name: 'TYPES', isKeyValuePair: false },
{ name: 'USERS', isKeyValuePair: false }
];
在这种情况下,您可以循环遍历数组,直到找到所需的条目。
您可能希望通过以下方式表达:
var sections =
{
SERVER: true,
TYPES: false,
USERS: false
};
然后您只需sections.SERVER
或sections['SERVER']
(因此也可能var section = "SERVER"; sections[section];
,因为您可能在变量中有密钥名称)
答案 1 :(得分:1)
不,不是。您应该为内部对象提供键,或者我们提供一组对象:
// key-value pairs
var sections =
{
o1: { name: 'SERVER', isKeyValuePair: true },
o2: { name: 'TYPES', isKeyValuePair: false },
o3: { name: 'USERS', isKeyValuePair: false }
};
console.log(sections.o1.name); //=> 'SERVER'
// array
var sections =
[
{ name: 'SERVER', isKeyValuePair: true },
{ name: 'TYPES', isKeyValuePair: false },
{ name: 'USERS', isKeyValuePair: false }
];
console.log(sections[0].name); //=> 'SERVER'
答案 2 :(得分:1)
这是无效的。
您可以使用
var sections =
{
s1: { name: 'SERVER', isKeyValuePair: true },
s2: { name: 'TYPES', isKeyValuePair: false },
s3: { name: 'USERS', isKeyValuePair: false }
};
并以sections.s1
,...
或
var sections =
[
{ name: 'SERVER', isKeyValuePair: true },
{ name: 'TYPES', isKeyValuePair: false },
{ name: 'USERS', isKeyValuePair: false }
];
和sections[0]
,...
答案 3 :(得分:1)
不,它不是一个有效的对象。如果结构如下:
var sections = {
prop11: { name: 'SERVER', isKeyValuePair: true },
prop2: { name: 'TYPES', isKeyValuePair: false },
prop3: { name: 'USERS', isKeyValuePair: false }
};
这是正确的。然而,看起来你真正想要的是一个数组。请尝试使用以下内容:
var sections =
[
{ name: 'SERVER', isKeyValuePair: true },
{ name: 'TYPES', isKeyValuePair: false },
{ name: 'USERS', isKeyValuePair: false }
];