首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下面的slate.js示例中的代码片段是做什么的?

下面的slate.js示例中的代码片段是做什么的?
EN

Stack Overflow用户
提问于 2020-02-01 20:34:37
回答 2查看 1.5K关注 0票数 0

我试图通过查看Slate.js来理解富文本示例,我看到了下面的代码片段,但我不理解。

代码语言:javascript
复制
const isBlockActive = (editor, format) => {
    const [match] = Editor.nodes(editor, {
      match: n => n.type === format,
  })

  return !!match
}

我不是javascript方面的专家,而且我对类型记录和slate.js都是新手,所以我为不能更好地描述我的问题而道歉,但以下是我目前所理解和仍然不确定的内容:

(1) Editor.nodes()是一个返回Iterable的方法。什么是"const match“符号?这是javascript还是类型记录?

(2) "const [match]“中的"match”与"match : n => n.type === format“中的”match“相同吗?如果是这样的话,这是否意味着"const [match]“是一个数组,其中有一个元素是一个函数?如果是这样,那么为什么还要让Editor.nodes()返回一个Iterable呢?

(3)我知道双感叹号给了我一个布尔对象,但是由于我无法理解匹配是函数还是可迭代或其他什么东西,所以我不知道!!match的真伪告诉我Editor.nodes()返回的初始可迭代性是什么。

谢谢你给我的任何光,你可能会洒在我迷茫的脑子里!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-01 20:39:24

这就是所谓的数组破坏。match是一个变量,它包含由Editor.nodes函数返回的数组的第一个元素(或者更确切地说是迭代器产生的第一个值)。它几乎等于:

代码语言:javascript
复制
  const match = Editor.nodes(...)[0];

或者更准确地说:

代码语言:javascript
复制
 const _it = Editor.nodes(...)[Symbol.iterator]().next();
 const match = _it.done ? undefined : _it.value;
票数 2
EN

Stack Overflow用户

发布于 2020-07-31 22:14:01

(1) Editor.nodes()是一个返回Iterable的方法。什么是"const match“符号?这是javascript还是类型记录?

它是JavaScript (和TypeScript) 数组破坏。Editor.nodes返回一个可迭代的,它被迭代来创建一个数组,并且这个数组的第一个元素被分配给match。我们只对是否至少有一个匹配感兴趣,所以查看数组的第一个元素会告诉我们这一点。

(2) "const match“中的"match”与"match :n => n.type === format“中的"match”相同吗?如果是这样的话,这是否意味着"const match“是一个包含一个元素的数组,它是一个函数?如果是这样,那么为什么还要让Editor.nodes()返回一个Iterable呢?

这两个变量是完全不同的,并且可能有(应该有?)用不同的名字来让事情更清楚。Editor.nodes()是Editor接口/API的一部分,它用于许多不同的事情。在这种情况下,我们只对第一个元素感兴趣。您可以使用它来查找和迭代editor.children中的所有节点,match函数对这些节点返回true。

(3)我知道双感叹号给了我一个布尔对象,但由于我无法理解匹配是函数还是可迭代或其他什么东西,所以我不知道Editor.nodes()返回的初始可迭代性是什么!match的真伪。

生成的match是一个节点对象,如果不匹配,则为。一个物体是真实的,而未定义的是虚幻的,并且在做!!只是把它转换成布尔值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60020888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档