我只是想知道Javascript中regexp匹配的结果为什么会返回一个带有键控索引的一维数组?
var str = "We will";
const result = str.match(/wi/);
console.log(Array.isArray(result));
console.log(result.index);
console.log(result.input);
在这里,数组如何具有基于字符串的键(“index”、"input“等)。有没有办法在Javascript中创建这样的数组?
发布于 2020-01-17 14:35:23
是的,有。数组只是JavaScript中的可迭代对象。MDN态
数组是类似列表的对象,其原型具有执行遍历和变异操作的方法。
这意味着您可以简单地分配一个属性。但是,在这样做时要小心,不要意外地覆盖现有的属性:
const arr = [1, 2, 3];
arr.propName = 42;
console.log(
...arr,
arr.propName
);
发布于 2020-01-17 14:34:20
从ecmascript5接口定义中,匹配输出为RegExpMatchArray
或null
,其中RegExpMatchArray
定义如下
interface RegExpMatchArray extends Array<string> {
index?: number;
input?: string;
}
如果您需要在类型记录中这样做,您将以完全相同的方式定义接口,并像访问对象那样访问/分配属性
如果你不需要打字稿,你可以跳过界面部分,只需
const array = []
array.index = 1;
array.input = "test"
console.log(array.index, array.input)
https://stackoverflow.com/questions/59789374
复制相似问题