const box = document.querySelectorAll('.box');
const box = [...document.querySelectorAll('.box') ];
Application.whenUserAdd( item => box.push(item))
document.querySelector('nav').addEventListener('click', event => {
let box = document.querySelectorAll('.box');
var AsyncDataLoader = function(options){
var data, error, promise = new Promise( function(resolve, reject){
axios.request(options).then(function (response) {
resolve(data = response.data);
}).catch(function (err) {
reject(error = err);
})
});
this.getData = function(){
return error ? Promise.reject(error) : data ? Promise.resolve(data) : promise;
}
}
let dataBox = new AsyncDataLoader({
method: 'GET',
url: '*************************',
params: {page: '1'},
headers: {
accept: 'application/json',
Authorization: 'Token **************',
'X-CSRFToken': '*************************************'
}
});
dataBox.getData().then( data => doSomeWith(data))
// other code
// ..
// other code
dataBox.getData().then( data => doSomeWith(data))
var data = []
function change(node){
let [ row, col ] = node.dataset.id.substring(1,).split('c').map(v => --v);
if (!data[row]) data[row] = [];
if (node.value) data[row][col] = +node.value;
}
document.querySelectorAll('input').forEach( node => {
change(node);
node.addEventListener('change', e => change(e.target));
});
// чтобы меньше бегать в циклах
let foldersMap = new Map();
for (let folder of folders_h)
foldersMap.set(folder.id, { children: folder.children })
for (let folder of folders){
let item = foldersMap.get(folder.id)
if (item) item.name = folder.name
else foldersMap.set(folder.id, { name: folder.name });
}
function helper(id){
let folder = foldersMap.get(id);
return !folder.children ? { id, name: folder.name } : { id, name: folder.name, children: folder.children.map( child => helper(child) ) }
}
let collection = folders_h.find( folder => folder.id === folders_root_id).children.map(child => helper(child))
$JsonObject = Get-Content -Path "E:\151.json" | ConvertFrom-Json | ConvertTo-Xml -notypeinformation | foreach { $_.Objects.Object.OuterXml -replace '\<Property.+?Name="(.+?)".*?\>(.+?)\</Property\>','<$1>$2</$1>' -replace "<(.)?Object>",'<$1root>'} | Out-File -FilePath "E:\151.xml"
var rawData = [
{ id:1,name:"Root element",parent:0 },
{ id:2,name: "Child of the first element", parent: 1},
{ id:555, name: "Child of the second element", parent:2}
];
function pack( data ){
const childs = id =>
data.filter( item => item.parent === id )
.map(
({id,name}) => ({id,name, children: childs(id)})
).map(
({id,name,children}) => children.length ? {id,name, children} : { id, name }
);
return childs(0);
}
console.log(JSON.stringify(pack(rawData)))
function myAwesomeAnimation(){
return new Promise( function(resolve, reject){
// some code
resolve(); //animation rendering complete
})
}
document.querySelector('#myAwesomeAnimationStartButton')
.addEventListener('click', function({ target }){
if (target.dataset.animationRendering) return;
target.dataset.animationRendering = target.disabled = true;
myAwesomeAnimation().then( _ => target.dataset.animationRendering = target.disabled = false );
})
const counter = Counter();
//тут counter будет равен
function(){
count++;
return count;
}
// переменная count будет доступна из этой функции,
// но она не равна переменной из const counter2 = Counter()
// у counter и couner2 разные области видимости (контекст)
// т.к. у каждой из них свой стек вызовов
if (activeNote) {
const note = document.getElementById(activeNote)
note.children[0].innerHTML = title;
note.children[1].innerHTML = created.toLocaleString("en-US");
note.children[2].innerHTML = body;
note.style.backgroundColor = color;
activeNote = null;
}
document.getElementById('listed')
.append(document.createTextNode(title + ' ' + created.toLocaleString("en-US") + ' ' + body + ' '));
if (activeNote) {
let note = document.getElementById(activeNote);
note.parentElement.removeChild(note);
activeNote = null;
}