gpt4 book ai didi

Javascript/Node : named group RegExp match: what [Object: null prototype] does it mean?

转载 作者:行者123 更新时间:2023-12-05 05:10:44 26 4
gpt4 key购买 nike

查看下面的 NodeJs:

$ node
Welcome to Node.js v12.3.1.

> regexp = /cerca (?<word>.+) su (?<dictionary>wikipedia|treccani|garzanti|google)/i

> string = 'cerca chatbots su wikipedia'

> matchData = string.match(regexp)
[
'cerca chatbots su wikipedia',
'chatbots',
'wikipedia',
index: 0,
input: 'cerca chatbots su wikipedia',
groups: [Object: null prototype] {
word: 'chatbots',
dictionary: 'wikipedia'
}
]

> matchData.groups.word
'chatbots'

> matchData.groups.dictionary
'wikipedia'

正则表达式匹配对我来说似乎没问题,并且命名组被完美捕获,但是 console.log Node REPL 中的 [Object: null prototype] 语句是什么意思?

谢谢

最佳答案

[Object: null prototype] 表示对象的 __proto__ 属性等于 undefined_proto_属性用于javascript继承,所以用在log上,辅助类的识别。

它的发生是因为 groups 只有找到的组作为键(缺少 __proto__)。通过这种方式,您可以使用 for(let key in matchData.groups){...} 以 100% 的准确度迭代键 key 不会假定 "__proto__" 值。这种设计可能是不必要的,但它确实有效。

您可以使用 Object(matchData.groups){...matchData.groups} 创建通用对象

关于Javascript/Node : named group RegExp match: what [Object: null prototype] does it mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56377872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com