在对象中使用方括号

Maa*_*man 0 javascript brackets

我的代码必须是这样的:

rules: {
  jform[name]: {
  required:true,
  minlength:5,
  maxlength:15
},
Run Code Online (Sandbox Code Playgroud)

我该如何使用这些方括号?关于这个主题,在这个网站和谷歌上有很多答案,但不是特别针对这个.

zzz*_*Bov 7

我现在无法准确回答你的问题,因为你问的是如何使用无效的语法,这是不可能的,因为它是无效的.

不过,我可以做的是解释JSON如何在JavaScript和希望,它涵盖了你的问题:

基础

{} 是一个对象文字

//this creates a new object
a = {};
//so does this
a = new Object();
Run Code Online (Sandbox Code Playgroud)

[] 是一个数组文字

//this creates a new array
a = [];
//so does this
a = new Array();
Run Code Online (Sandbox Code Playgroud)

属性可以通过.[]表示法访问:

//these are the same
a.b = c;
a['b'] = c;
Run Code Online (Sandbox Code Playgroud)

可以使用文字值或字符串设置对象文字:

a = {
    //any character you can use for a variable name can be
    //used to instantiate an object without quotes
    b: c,
    //special characters need to be quoted
    "foo bar baz": "fizz buzz"
};
Run Code Online (Sandbox Code Playgroud)

你原来的语法:

rules: {
  jform[name]: {
  required:true,
  minlength:5,
  maxlength:15
}
Run Code Online (Sandbox Code Playgroud)

是无效的,因为您不能在变量名中使用[]字符,但是您可以使用字符串作为字面值:

rules: {
  "jform[name]": {
  required:true,
  minlength:5,
  maxlength:15
}
Run Code Online (Sandbox Code Playgroud)

...将被访问为:

rules["jform[name]"]
Run Code Online (Sandbox Code Playgroud)

但似乎您想要访问数据:

rules.jform[name]
Run Code Online (Sandbox Code Playgroud)

需要设置为:

rules: {
    jform: {}
}
...more code...
rules.jform[name] = {rules: {
    required:true,
    minlength:5,
    maxlength:15
};
Run Code Online (Sandbox Code Playgroud)