这是一个有效的Javascript对象吗?

时间:2011-04-17 11:22:36

标签: javascript

这是一个有效的JavaScript对象吗?

var sections = 
{
    { name: 'SERVER', isKeyValuePair: true },
    { name: 'TYPES', isKeyValuePair: false },
    { name: 'USERS', isKeyValuePair: false }
};

我如何访问它?

我将知道名称('SERVER'等),并希望获得isKeyValuePair属性的true或false值。

此对象是否有更好的布局,我仍然可以根据搜索名称访问keyvaluepair属性?

非常感谢

4 个答案:

答案 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.SERVERsections['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 }
];