今天,我在JS中使用正则表达式,遇到了一个我从未见过的数据结构:其中一些条目具有键的数组。返回此类数据结构的方法是regex 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


这里发生了什么?

最佳答案

数组只是对象。它们可以具有任何类型的属性。

名称为数字字符串的属性是特殊的,因为它们被绑定在“ length”属性的语义中,否则它们也只是普通属性。

我应该注意到,尽管以上所有内容都是正确的,但是在向数组添加非数字属性时,有些事情要知道。非数字属性不会影响“长度”值,因此您不能使用.length来查看有多少。更重要的是,使用JSON.stringify()序列化数组时,输出中不包含非数字属性。

关于javascript - 带键的Javascript数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38040638/

10-11 14:47