首页 > 解决方案 > JavaScript RegExp 中 exec 方法返回的数组类型是什么?

问题描述

我的问题有一个概念方面,我不清楚一件事。

当我创建一个正则表达式let reg = /javascript/i;并通过方法检查它时exec(),它会返回给我一个看起来不寻常的数据数组,并且它具有键/值结果。

reg.exec('hello javascript');
// ["javascript", index: 6, input: "hello javascript", groups: undefined]

一切都是关于正确的结果,我的问题是关于返回数组模式。我知道在 JavaScript 中我们通常不能定义这样的数组,但是 , 和 键的理由indexinput什么groups

当我用isArray方法检查这个结果时,它说这是一个数组:

Array.isArray(reg.exec('hello javascript'));
// true

当我尝试像这样定义一个数组时,JS 会向我返回一个错误:

let myArray = ["javascript", index: 6, input: "hello javascript", groups: undefined];
// Uncaught SyntaxError: Unexpected token ':'

提前感谢您向我解释发生了什么,我再次强调我的问题不是关于 exec 或 regexp 的性能,而是关于这个数组。

标签: javascriptarrays

解决方案


推荐阅读