- String.matchAll**生成添加了属性(索引、输入和组)的混合数组。
例如
[...'abc'.matchAll(/a|b|c/g)]
产量:
0: ['a', index: 0, input: 'abc', groups: undefined]
1: ['b', index: 1, input: 'abc', groups: undefined]
2: ['c', index: 2, input: 'abc', groups: undefined]
length: 3
[[Prototype]]: Array(0)
有没有办法在www.example.com或Array.filter中的arrow函数中对matchAll结果进行反结构化?Array.map or Array.filter?
一个更一般的问题:当数组的元素和属性都需要时,如何在箭头函数中解构"混合数组"。
虽然我可以在for-of循环中解构matchAll:
for (const {0: m, index, input} of [...'abc'.matchAll(/a|b|c/g)]) {
console.log(m, index, input)
}
a 0 abc
b 1 abc
c 2 abc
- -我找不到在. map函数中对其进行解构的方法:
[...'abc'.matchAll(/a|b|c/g)].map({0: m, index, input} => m)
- -给出未捕获的语法错误:格式错误的箭头函数参数列表错误
[m,... {索引,输入}]不起作用:
const [m, ...{index, input}] = [...'abc'.matchAll(/a|b|c/g)] [0]
- -它不捕获索引和输入(未定义),并在. map函数中给出相同的语法错误。
(值得注意的是,... {length}会破坏一些设置为0的"length"属性,而它应该是1)。
1条答案
按热度按时间qcbq4gxm1#
缺少括号