带键的Javascript数组

时间:2016-06-26 16:27:51

标签: javascript

我今天在JS中使用正则表达式,并且遇到了我以前从未见过的数据结构:一些数据库,其中一些条目有密钥。返回这种数据结构的方法是正则表达式match函数。这是一个例子:

    var re = /SESSID=\w+=;/;
    var test = 'SESSID=aaaa=;fjsdfjd';
    var arr = test.match(re);
    console.log(arr);  // ["SESSID=aaaa=;", index: 0, input: "SESSID=aaaa=;fjsdfjd"]
    console.log(arr[0]);  // SESSID=aaaa=;
    console.log(arr['index']);  // 0
    console.log(arr['input']);  // SESSID=aaaa=;fjsdfjd

这里发生了什么?

1 个答案:

答案 0 :(得分:3)

数组只是对象。他们可以拥有任何类型的财产。

名称为数字字符串的属性是特殊的,因为它们与“length”属性的语义绑定在一起,但除此之外它们也只是普通的属性。

我应该注意,虽然以上所有都是正确的,但在向数组添加非数字属性时需要了解一些事项。非数字属性不会影响“长度”值,因此您无法使用.length查看有多少属性。更重要的是,使用JSON.stringify()序列化数组时,输出中不包含非数字属性。