<div>
<label><input type="checkbox" data-param="param1" class="link-changer">param 1</label>
<label><input type="checkbox" data-param="param2" class="link-changer">param 2</label>
<label><input type="checkbox" data-param="param3" class="link-changer">param 3</label>
<label><input type="checkbox" data-param="param4" class="link-changer">param 4</label>
</div>
<div>
<a href="/test" class="change-on-check">test 1</a><br>
<a href="/test" class="change-on-check">test 2</a><br>
<a href="/test" class="change-on-check">test 3</a><br>
</div>
var links = document.getElementsByClassName('change-on-check');
Array.prototype.forEach.call(links, function(link) {
link.href += '?';
});
Array.prototype.forEach.call(
document.getElementsByClassName('link-changer'),
function(checkbox) {
checkbox.addEventListiner('change', onChange, false);
}
);
function onChange(event) {
var param = '&' + encodeURIComponent(event.target.getAttribute('data-param'));
var add = event.target.checked;
Array.prototype.forEach.call(links, function(link) {
if(add) {
link.href += param;
} else {
link.href = link.href.replace(param, '');
}
});
}
loadMember() {
return new Promise((resolve, reject) => {
db.query('sql...', (err, result) => {
if(err) {
return reject(err);
}
resolve(result);
}
}).then(result1 => {
return new Promise((resolve, reject) => {
//..
});
});
}
Promise.all([promise1, promise2 /*, ... */]).then(results => {});
console.log(1);
setTimeout(function() {
console.log(2);
console.log(3);
}, 1000);
function delay(timeout) {
return new Promise(function(resolve) {
setTimeout(resolve, timeout || 0);
});
}
console.log(1);
delay(1000).then(function() {
console.log(2);
}).then(function() {
console.log(3);
});
function delay(timeout) {
return new Promise(function(resolve) {
setTimeout(resolve, timeout || 0);
});
}
async function log123() {
console.log(1);
await delay(1000);
console.log(2);
console.log(3);
}
async function log1to10() {
for(var i = 1; i <= 10; i++) {
console.log(i);
await delay(i * 1000);
}
}
log123().then(function() {
return log1to10();
});
function add() {
var value = 0;
function subAdd() {
for(var i = arguments.length; i--;) {
var v = parseFloat(arguments[i]);
if(!isNaN(v) && isFinite(v)) {
value += v;
}
}
return subAdd;
}
subAdd.toString = function() {
return value;
}
return subAdd.apply(null, arguments);
}
console.log(+add(2, 5)); //7
console.log(+add(2)(5)); //7
console.log(+add(1, 2, 3)); //6
console.log(+add(1)(2)(3)); //6
console.log(+add(1, 2)(3)); //6
console.log(+add(1)(2, 3)); //6
console.log(+add(1, 2)(3, 4)(5, 6)(7, 8)(9)); //45
var cats = [];
$('.cats').each(function() {
cats.push($(this).text());
});
var catsNodes = document.getElementsByClassName('cats');
var cats = new Array(catsNodes.length);
for(var i = catsNodes.length; i--;) {
cats[i] = catsNodes[i].innerText;
}
var catsIndex = _.indexBy(cats, 'id');
cats.forEach(function(el) {
if(!catsIndex[el.parent_id]) return;
if(!catsIndex[el.parent_id].childs) catsIndex[el.parent_id].childs = [];
catsIndex[el.parent_id].childs.push(el.id);
});
console.log(cats);
var catsChilds = {};
for(var i = cats.length; i--;) {
if(catsChilds[cats[i].id]) {
cats[i].childs = catsChilds[cats[i].id];
} else {
cats[i].childs = catsChilds[cats[i].id] = [];
}
if(!catsChilds[cats[i].parent_id]) {
catsChilds[cats[i].parent_id] = [];
}
catsChilds[cats[i].parent_id].push(cats[i].id);
}
console.log(cats);