параметры не используются, забыла убрать из конструктора)
const crust = prompt('Choose your crust: ');
const howMany = +prompt('How many toppings do you want?');
const personalPizza = new Pizza(crust, howMany);
// Исходный объект
const obj: {
12345: 1,
12346: 2,
12356: 1,
12357: 1,
12360: 1,
}
// Результат
let result = {};
// Делаем из объекта массив, пригодный для преобразования в объект Map
const mapableArray = Object.entries(this.obj);
// Меняем местами ключи и значения
const mapableReversedArray = mapableArray.map(kv => [kv[1], kv[0]]);
// Создаем объект Map из обращенного массива
// При это дубликаты ключей будут перезаписаны и станут уникальными
const map = new Map(mapableReversedArray);
// Осталось только собрать целевой объект
map.forEach(function(value, key) { result[key] = value; });
// И использовать результат
console.log(result);
let result = {};
(new Map(Object.entries(this.obj).map(kv => [kv[1], kv[0]])))
.forEach(function(value, key) { result[key] = value; });
console.log(result);
let result = Array.from(
(new Map(Object.entries(this.obj).map(kv => [kv[1], kv[0]])))
).reduce((acc, v) => { acc[v[1]] = v[0]; return acc; }, {});
Соответственно первая загрузка была долгой, так как грузила скрипты и стили всех страниц.
let number = 12345;
let resultEven = 0;
let resultOdd = 0;
let nEven = 0; // разрядность числа (нечетные числа)
let nOdd = 0; // разрядность числа (четные числа)
while (number > 0) {
let digit = number % 10;
if (digit % 2 !== 0) {
resultEven += digit * Math.pow(10, nEven++);
} else {
resultOdd += digit * Math.pow(10, nOdd++);
}
number = Math.floor(number / 10);
}
let result = resultEven + resultOdd * Math.pow(10, nEven);
<script type="text/javascript">
window.__STATE__ = <?= json_encode($allData) ?>;
</script>
created () {
if (window.__STATE__ && window.__STATE__.myData) {
this.myData = window.__STATE__.myData;
} else {
axios.get( .... )
}
}
global.ROOT = 'корень проекта';
let config = {
root: {
build: 'dist'
}
};
config.copy = [
{ src: 'source/assets/**', dest: '/'},
{ src: 'source/assets/.htaccess', dest: '/'},
{ src: 'node_modules/tiny-slider/dist/tiny-slider.js', dest: '/design/js' },
{ src: 'node_modules/tiny-slider/dist/tiny-slider.css', dest: '/design/css' },
{ src: 'node_modules/cool-menu/dist/cool-menu.js', dest: '/design/js' },
{ src: 'node_modules/svg4everybody/dist/svg4everybody.js', dest: '/design/js' },
{ src: 'node_modules/vanilla-text-mask/dist/vanillaTextMask.js', dest: '/design/js' },
{ src: 'node_modules/tippy.js/dist/tippy.all.min.js', dest: '/design/js' },
];
function copyFiles(conf, options) {
return new Promise((resolve, reject) => {
if (!('src' in conf)) reject('Invalid config for "copy" task: undefined "src" param');
if (!('dest' in conf)) conf.dest = '';
if ('extensions' in conf) { }
let source = path.join(global.ROOT, conf.src);
let dest = path.join(global.ROOT, options.root.build, conf.dest);
let pipeline = gulp.src(source).pipe(gulp.dest(dest));
pipeline.on('error', function (err) {
reject(err);
});
pipeline.on('end', function () {
resolve();
});
});
}
gulp.task('copy', function(done){
let copies = [];
options.copy.forEach(item => {
copies.push(copyFiles(item, options));
});
Promise.all(copies).then(value => done(), reason => done());
});
function getData() {
//...
return new Promise((resolve, reject) => {
xhr.onreadystatechange = function () {
if (xhr.readyState != 4) reject(xhr.statusText);
if (xhr.status != 200) {
reject(xhr.statusText);
} else {
resolve(xhr.responseText);
}
};
xhr.send();
});
}
// use
getData()
.then(function(response){
console.log('Its OK', response);
})
.catch(function(errorText){
console.log('Error:', errorText);
});