Обход в глубину с рекурсией
function dfsWalkRecursive(node) {
console.log(node.value)
if(node.children) node.children.forEach(childNode => dfsWalkRecursive(childNode))
}
const tree = {
Обход в глубину с рекурсией
function dfsWalkRecursive(node) {
console.log(node.value)
if(node.children) node.children.forEach(childNode => dfsWalkRecursive(childNode))
}
const tree = {
| /* eslint-env node */ | |
| /** global: Buffer */ | |
| 'use strict'; | |
| const gutil = require('gulp-util'); | |
| const through = require('through2'); | |
| const wpi18n = require('node-wp-i18n'); | |
| const PluginError = gutil.PluginError; |
| // bug - on each click this code creates a new event listener for all $drag parents | |
| // serious lack of memory and permormance | |
| // solution - unbind this event on 'mouseup' and make 'mouseup' once-executable via one() | |
| (function($) { | |
| $.fn.drags = function(opt) { | |
| opt = $.extend({handle: '', cursor: 'move'}, opt); | |
| if(opt.handle === '') { |
| // improved drags function, replace it in your code | |
| function drags(dragElement, resizeElement, container, labelContainer, labelResizeElement) { | |
| var $ = jQuery; | |
| dragElement.on('mousedown vmousedown', function (e) { | |
| dragElement.addClass('cd-draggable'); | |
| resizeElement.addClass('cd-resizable'); | |
| var dragWidth = dragElement.outerWidth(), | |
| xPosition = dragElement.offset().left + dragWidth - e.pageX, |