const slides = [
{ id: 0, img: 'путь', active: true },
{ id: 1, img: 'путь', active: false }
]
После нажатия кнопки перехода, делай новый слайд активным, а все остальные переводи в active: false
function num(number) {
function number_format(number, decimals, dec_point, thousands_sep) {
number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
let n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
let k = Math.pow(10, prec);
return '' + Math.round(n * k) / k;
};
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
if (number <= 9999 && number >= -9999) {
return number_format(number, 0, '.', '');
} else if(number <= 999999 && number >= -999999){
return number_format(number/1e3, 2, '.', '') + ' тыс. ';
} else if(number <= 999999999 && number >= -999999999){
return number_format(number/1e6, 2, '.', '') + ' млн. ';
} else {
return number_format(number/1e9, 2, '.', '') + ' млрд.';
}
}
Как правильнее было бы реализовать это?
Как увеличить FPS в системе?
Основной способ стандартный -- не перерисовывать всё, если можно этого избежать.
купил FTP сервергде же такой ужас нашел
const keys = new Set(
Object.values(data)
.map((entry) => Object.keys(entry))
.flat()
);
const properties = Object.keys(data).map((key) => [
key.split("_").shift(),
key,
]);
const result = [...keys].reduce((acc, key) => {
acc[key] = Object.fromEntries(
properties.map(([property, type]) => [property, data[type][key] ?? 0])
);
return acc;
}, {});
const mappedData = Object.entries(data).reduce((acc, [type, entry]) => {
const property = type.split('_').shift();
for (const key in entry) {
acc[key] = { ...acc[key], [property]: entry[key] };
}
return acc;
}, {});
console.log(mappedData);
/*
{
"Машины и оборудование прочие, не включенные в другие группировки": {
"active": 1,
"inactive": 2
},
"Насосное оборудование, комлектующие, сопутствующие": {
"active": 1,
"inactive": 2
},
"Электродвигатели, генераторы и трансформаторы силовые": {
"active": 1,
"inactive": 2
},
"Средства транспортные прочие, не включенные в другие группировки": {
"active": 1
}
}
*/
const result = {};
const propertyMap = Object.fromEntries(Object.keys(data).map((key) => [key.split('_').shift(), key]));
for (const property in propertyMap) {
for (const key in data[propertyMap[property]]) {
result[key] ??= {};
result[key][property] = data[propertyMap[property]][key];
}
}
for (const key in result) {
for (const property in propertyMap) {
if (property in result[key] === false) {
result[key][property] = null;
}
}
}
console.log(result);
/*
{
"Машины и оборудование прочие, не включенные в другие группировки": {
"active": 1,
"inactive": 2
},
"Насосное оборудование, комлектующие, сопутствующие": {
"active": 1,
"inactive": 2
},
"Электродвигатели, генераторы и трансформаторы силовые": {
"active": 1,
"inactive": 2
},
"Средства транспортные прочие, не включенные в другие группировки": {
"active": 1,
"inactive": null
}
}
*/
indexPatients
.id
– значения объекты: {
"1": { id: 1, name: "Максим" },
"2": { id: 2, name: "Николай" },
// и так далее
}
id
вытащить соотв. объект.id
в нужном порядке.map()
каждый id
на соотв. ему полный объект.