foreach之前的Javascript分配(我不知道这叫什么)

时间:2019-04-17 03:11:37

标签: javascript arrays ecmascript-6 syntax

我正在查看一些示例代码,这些示例代码用于循环浏览Chrome App API中的目录,并且遇到了一条从未见过的语句,也不知道要搜索什么。

function recurseDirectory(dirEntry, callback) {
    var dirsLeft = 1;
    var rootEntries;
    let helper = (dirEntry, isRoot) => {
        dirEntry.createReader().readEntries(entries => {
            dirsLeft--;

            if (isRoot) {
                rootEntries = entries;
            }
            //This line is what I'm confused about
            (dirEntry.entries = entries).forEach(entry => {
                if (entry.isDirectory) {
                    dirsLeft++;
                    helper(entry);
                }
            });

            if (!dirsLeft) {
                callback(rootEntries);
            }
        });
    }

    helper(dirEntry, true);
}

由于它只是一个片段,因此我无法运行此代码,因此我仍将其进行剖析。

我不知道的部分是(dirEntry.entries = entries).forEach {...}。我尝试查找assignment foreachequal foreach,但没有结果。

此操作/语法的名称是什么?

4 个答案:

答案 0 :(得分:2)

这只是普通的变量赋值-但是,将其放在方括号中意味着您要为dirEntry.entries分配entries的值,而会迭代{{1} }并使用相同的语句-只是以下简称:

entries

答案 1 :(得分:0)

这不是别的,而是赋值表达式。 (dirEntry.entries = entries)将返回将在其上应用entries的{​​{1}}的值,也将返回forEachdirEntry.entries的值。一站式完成工作。

  • entires的值更改为data.entires
  • 返回已应用entires的{​​{1}}。

答案 2 :(得分:0)

这只是对re.findall('(?<=,)\d{2}(?=,)', page) ['77', '80', '76', '91', '99', '70', '84', '91', '64', '63', '80', '82', '70', '51', '67', '48', '65', '60', '70', '58', '50', '71', '52'] 引用的数组上的forEach的分配和立即执行。

答案 3 :(得分:0)

这只是一个懒惰的人,试图保存自己几次按键。等同于

dirEntry.entries = entries;
entries.forEach(...)