ste*_*ang 8 javascript associative-array object
在这个问题中,我讨论了javaScript中相关数组和对象的概念,我有点困惑.
在此示例代码中:
var check = {
pattern : {
name: /^[a-zA-Z-\s]{1,20}$/,
email: /^[a-zA-Z0-9._(-)]+@[a-zA-Z0-9.(-)]+\.[a-zA-Z]{1,4}$/,
pass: /.{6,40}/,
url: /^[(-)\w&:\/\.=\?,#+]{1,}$/,
aml: /<(.+)_([a-z]){1}>$/
}
};
Run Code Online (Sandbox Code Playgroud)
这是讨论让我困惑:
@ steven.yang外部对象不是样本中的关联数组,但这就是要求的内容
@sissonb你的意思是'外部对象不是一个关联数组'?我认为关联数组在javascript中表示为对象.不同之处在于符号 - 通过
foo.bar或foo[bar]@ steven.yang关联数组意味着key => value.http://en.wikipedia.org/wiki/Associative_array你的内部对象有一个模式的键,包含这个关联数组的对象没有键.
关联数组被定义为键值对,object在JavaScript中表示.
分配给的外部对象check具有键pattern和另一个对象的值.内对象具有的键name,email...和正则表达式对象的相应的值.
两个对象都可以算作关联数组吗?
不是真的,这就是原因:
var arr = new Array();
arr["foo"] = 100;
arr["bar"] = 200;
console.log(arr.length); // Prints 0.
Run Code Online (Sandbox Code Playgroud)
将元素添加到关联数组应该增加其长度(IMO).
由于语法糖,它看起来和行为(有点)像一个关联数组.然而,似乎是"数组条目"的是(仅)对象属性.