const str = "Можете подсказать, как сделать, если в строке более 40 символов часть текста скрывалась?";
function short(str, len = 40) {
if (str.trim().length <= len) return str.trim();
return str.trim().substr(0, len - 3).trim() + "...";
}
short(str); // строка до 40 символов, включая точки
short(str, 80); // строка до 80 символов, включая точки
const data = [
[1497052800, 100, 1597052800, 120, 1597052800, 120],
[1497139200, 140, 1597052800, 80],
[1497225600, 200, 1597052800, 222],
[1497312000, 80, 1597052800, 100],
];
function getItems(arr, from, to) {
return arr.map(arr => arr.filter((e, id) => id >= from && id <= to));
}
// data - сам массив, 0,1 это диапазон индексов, с какого по какой делать выборку
getItems(data, 0, 1); // первые два
getItems(data, 2, 3); // вторые два
[x1,y1,z1,x2,y2,z2]
, то getItems(data, 0, 2);
getItems(data, 3, 5);
[x1,y1,x2,y2,x3,y3]
, то getItems(data, 0, 1);
getItems(data, 2, 3);
getItems(data, 4, 5);
<head>
укажи тег <base href="https://sitename.ru">
, тогда все относительные ссылки будут работать относительно указанного адреса.const cart = [
{
category: "Машины",
subCategory: "Автомобиль",
items: [0, 1],
},
{
category: "машины",
subCategory: "Техника",
items: [2, 3],
},
{
category: "Органика",
subCategory: "Цветы",
items: [4, 5],
},
{
category: "Грибы",
subCategory: "Автомобиль",
items: [6, 7],
},
];
const cart = [
{
id: 0,
category: "Машины",
subCategory: "Автомобиль",
},
{
id: 1,
category: "Машины",
subCategory: "Автомобиль",
},
{
id: 2,
category: "Машины",
subCategory: "Техника",
},
{
id: 3,
category: "Машины",
subCategory: "Техника",
},
{
id: 4,
category: "Органика",
subCategory: "Цветы",
},
{
id: 5,
category: "Органика",
subCategory: "Цветы",
},
{
id: 6,
category: "Органика",
subCategory: "Грибы",
},
{
id: 7,
category: "Органика",
subCategory: "Грибы",
},
];
@for $i from 1 through 3 {
@keyframes rotate-left-#{$i} {
0% { transform: rotate(0deg); }
50% { transform: rotate(#{$i * 60}deg); }
100% { transform: rotate(#{$i * 60}deg); }
}
}
// не забудь заменить на rotate-right-1,2,3
@for $i from 1 through 3 {
@keyframes rotate-right-#{$i} {
0% { transform: rotate(0deg); }
50% { transform: rotate(0deg); }
100% { transform: rotate(#{$i * 60}deg); }
}
}
@for $i from 1 through 6 {
$stage_0: 0;
$stage_1: 0;
$stage_2: $i * 60;
@if $i <= 3 {
$stage_1: $i * 60;
}
@else {
$stage_2: $stage_2 - 180;
}
@keyframes rotate-#{$i} {
0% { transform: rotate(#{$stage_0}deg); }
50% { transform: rotate(#{$stage_1}deg); }
100% { transform: rotate(#{$stage_2}deg); }
}
}
Ctrl + Enter
, тебя перенесет на новую пустую строку. Добавь плагин для автозакрытия тега и получишь быстрое заполнение списка.Ctrl + Alt + ↓
и сможешь выделить несколько строк, а значит одним нажатием вставить столько же значений. $_GET["page"] = "12";
$page = 0;
$numRows = 122;
$rowsPerPage = 5;
$plus = 2;
if (isset($_GET["page"]) && $_GET["page"] > 0) {
$page = intval($_GET["page"]);
}
$maxPage = ceil($numRows / $rowsPerPage);
if ($page - $plus > 0) {
echo "< ";
}
for ($i = $page - $plus; $i <= $page + $plus; $i++) {
if ($i < 0) continue;
if ($i > $maxPage) break;
echo $i . " ";
}
if ($page + $plus < $maxPage) {
echo ">";
}
mb_substr($txt, $i, 1, "UTF-8")
. Попутно открываешь для себя многобайтные кодировки и функции для работы с ними, с префиксом mb_. Длину строки получаешь вот так: mb_strlen($name, "UTF-8")
$str = "привет бла бла бла";
echo strlen($str); // 33 wrong
echo mb_strlen($str); // 18 ok
echo $str[0]; // wrong
echo substr($str, 0, 1); // wrong
echo mb_substr($str, 0, 1); // ok
// долго, так как сначала ждем а, потом б
// если на выполнение каждого надо по 5 сек, итоговое время выполнения будет 10 сек
async function sum(a, b) {
const a = await getA();
const b = await getB();
return a + b;
}
// быстро, так как создали по промису, и они одновременно обрабатываются, потом только ждем их результатов.
// если на выполнение каждого надо по 5 сек, итоговое время выполнения будет 5 сек
async function sum(a, b) {
const a = getA();
const b = getB();
return await a + await b;
}