<div itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
.....
<meta itemprop="priceValidUntil" content="2029-12-31">
.....
</div>
const arr = [1,2,3,4];
const obj = [{id:3},{id:5},{id:6}];
const b = obj.map(o => o.id); // получили [3, 5, 6]
const i = b.filter(el => !arr.includes(el));
const o = arr.filter(el => !b.includes(el));
console.log(`из arr удалено ${o.join(',')} и добавлено ${i.join(',')}`);
// из arr удалено 1,2,4 и добавлено 5,6
const diff = (a,b) => ({
i: b.filter(x => !a.includes(x)), // in
o: a.filter(x => !b.includes(x)), // out
});
const data = diff(arr, obj.map(el => el.id));
console.log(`из arr удалено ${data.o.join(',')} и добавлено ${data.i.join(',')}`);
function getVideoImage(path, secs, callback) {
var me = this
var video = document.createElement('video');
video.onloadedmetadata = function() {
if ('function' === typeof secs) {
secs = secs(this.duration);
}
this.currentTime = Math.min(Math.max(0, (secs < 0 ? this.duration : 0) + secs), this.duration);
};
video.onseeked = function(e) {
var canvas = document.createElement('canvas');
canvas.height = video.videoHeight;
canvas.width = video.videoWidth;
var ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
var img = new Image();
img.src = canvas.toDataURL();
callback.call(me, img, this.currentTime, e);
};
video.onerror = function(e) {
callback.call(me, undefined, undefined, e);
};
video.src = path;
}
""" – ошибка, должно быть "\"" или '"'
"\" – ошибка, должно быть "\\"
и все такое
return function() {
return count++;
};
var counter = makeCounter(); // присвоили функцию у которой своя СОБСТВЕННАЯ область видимости
var counter2 = makeCounter(); // присвоили функцию у которой своя СОБСТВЕННАЯ отличная от предыдущей область видимости
console.log( counter());
console.log( counter2());
makeCounter()()
makeCounter()()
makeCounter()()