Javascript 是否可以在Vue.js中使用关联数组而不使用对象?

Javascript 是否可以在Vue.js中使用关联数组而不使用对象?,javascript,vue.js,associative-array,Javascript,Vue.js,Associative Array,我试图获得一个关联数组,但是这个语法产生了一个错误,即lamda符号。我该怎么做?我希望避免使用对象,因为键需要是包含大写字母和空格的字符串 <script> export default { name: 'VueHeader', data() { return { links : ['Dashboard' => '/dashboard', 'Account' => '/account'], }

我试图获得一个关联数组,但是这个语法产生了一个错误,即lamda符号。我该怎么做?我希望避免使用对象,因为键需要是包含大写字母和空格的字符串

<script>
export default {
    name: 'VueHeader',
    data() {
        return {
            links : ['Dashboard' => '/dashboard', 'Account' => '/account'],
        }
    }
}
</script>

导出默认值{
名称:“VueHeader”,
数据(){
返回{
链接:['Dashboard'=>'/Dashboard','Account'=>'/Account'],
}
}
}

导出默认值{
名称:“VueHeader”,
数据(){
返回{
链接:{'Dashboard':'/Dashboard','Account':'/Account'},
};
}
}
JS对象可以使用字符串作为键。这些将满足您的需求,因为
'Foo'!='foo'
。以以下为例:

> x = {"foo": 10, "Foo": 20, "foo bar": 15}
{ foo: 10, Foo: 20, 'foo bar': 15 }
> x['Foo']
20
> x['foo']
10
> x['foo bar']
15

另一个答案正确地指出,普通对象在JavaScript中充当关联数组:

...
links : {'My Dashboard': '/dashboard', 'My Account': '/account'},
...
键可以是任意字符串。如果某个键包含空格或其他非字母数字字符,则可以使用。因为它是基本的JS功能,所以Vue模板支持它:

{{links['My Dashboard']}}
普通对象的问题是,规范不能保证键的顺序,尽管在所有当前实现中实际上都保留了这种顺序

保证订单的现代替代方案是ES6
Map
。它位于Vue中,只能用普通对象替换静态数据:

...
links : new Map([['My Dashboard', '/dashboard'], ['My Account': '/account']]),
...

由于javascript中没有关联数组,因此数组的整数索引必须始终按递增顺序

相反,您可以只创建一个对象,并访问数组表示法中的属性,如下所示:

const obj = { 'Dashboard': '/dashboard', 'Account': '/account' };

console.log(obj['dashboard']);
console.log(obj['Account']);

JS中没有关联数组。这不是Vue特有的。