Javascript 我不知道´;我不懂这个语法

Javascript 我不知道´;我不懂这个语法,javascript,Javascript,在下面的代码中,我不确定哪个对象引用了code.push(node)。如果它引用的是节点或父变量 我已经在代码中添加了console.log(),但是正在更新数据和数据映射变量。我很困惑 // *********** Convert flat data into a nice tree *************** // create a name: node map var dataMap = data.reduce(function(map, node) { map[node.na

在下面的代码中,我不确定哪个对象引用了code
.push(node)
。如果它引用的是节点或父变量

我已经在代码中添加了
console.log()
,但是正在更新数据和数据映射变量。我很困惑

// *********** Convert flat data into a nice tree ***************
// create a name: node map
var dataMap = data.reduce(function(map, node) {
    map[node.name] = node;
    return map;
}, {});
// create the tree array
var treeData = [];
data.forEach(function(node) {
    // add to parent
    var parent = dataMap[node.parent];
    if (parent) {
        // create child array if it doesn't exist
        (parent.children || (parent.children = []))
            // add node to child array
            .push(node);
    } else {
        // parent is null or missing
        treeData.push(node);
    }
});
我想理解代码

// create child array if it doesn't exist
(parent.children || (parent.children = []))
// add node to child array
  .push(node);
这是:

(parent.children || (parent.children = [])).push(node);
这与

if (!parent.children) {
  parent.children = [];
}

parent.children.push(node);

这是前一行的一部分。