[
['text', 'lorem ipsum dolor'],
['copy', 1],
['text', 'sit amet'],
['copy', 2],
]
если я правильно понял, что каждый из плейсхолдеров копирует значение после вертикальной черты – первый копирует 1, второй 2.<template v-for="item in items">
<component :is="text" v-if="item[0] === 'text'">{ item[1] }</component>
<component :is="copy" v-if="item[0] === 'copy'" :value="item[1]" />
</template>
index
deleteEl()
index
уже указывает на следующий элемент и не отрисовывает его.forEach()
render()
не место для изменения данных. Пусть каждый занимается своим делом: render()
только рисует что есть. delete() только удаляет элемент из массива (и вызывает render()
) $('.table_body').on('change', '.input_ptp_tema', function() {
change
добавьте проверку на число выбранных файлов:if (event.target.files.length !== 3) {
// как-то сообщить, что ждём именно 3 файла
return;
}
а когда всё ок, то либо сразу в разметке создать вместо 1 целых 3 тега с img, у каждого свой уникальный id. Либо генерить разметку трёх img на лету и заменять HTML у div.profile-images
function findWord() {
const text = document.getElementById('text_34').value;
const word = document.getElementById('word_34').value;
const outputElement = document.getElementById('output_34');
const re = new RegExp(word, 'gi'); // в word хорошо бы экранировать спец-символы RegExp'ов
function wrapInSpan(match) {
return '<span>' + match + '</span>';
}
outputElement.innerHTML = text.replace(re, wrapInSpan);
}
value
текстового поля ввода это просто строка текста, что бы там ни вводили.const str = '1,2, 3, 4'; // то, что забрали из value инпута
const separator = /,\s*/; // рег. выражение: запятая и потом 0 или больше пробелов
const arr = str.split(separator); // [ "1", "2", "3", "4" ]
тут ешё один подвох: элементы массива по-прежнему строки. Не число 1, а строка "1".const arr = str
.split(separator)
.map(Number); // [ 1, 2, 3, 4 ]
вот теперь больше похоже на желаемый, наверное, результат? const a = {};
const b = {};
a.b = b;
b.a = a;
cloneDeep(a); // бесконечный цикл
/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh
в строке 125-r
на -E
-r
, он только на Linux)- __vsc_current_command="$(builtin history 1 | sed -r 's/ *[0-9]+ +//')"
+ __vsc_current_command="$(builtin history 1 | sed -E 's/ *[0-9]+ +//')"
DB::raw()
$revCount = ReviewUserCount::updateOrCreate(
['user_id' => $user->id, 'review_id' => $request->reviews], //здесь нахожу нужную строку
['count' => DB::raw('count + 1')]
);
ReviewUserCount::upsert(
['user_id' => $user->id, 'review_id' => $request->reviews, 'count' => 1],
['user_id', 'review_id'],
['count' => DB::raw('count + 1')]
);
но что он возвращает – надо уточнять. ffmpeg \
-ss 15 \
-i input.mp4 \
-t 75 \
-c copy \
output_15_90.mp4
пропустить 15 секунд от начала, взять фрагмент длиной 75 сек, сохранить без перекодирования в файл output_15_90.mp4ffmpeg \
-ss 15 \
-i input.mp4 \
-vf scale=854:-2 \
-t 75 \
-c:v libx264 \
-c:a aac \
output_15_90.mp4
сделать ширину кадра 854 точки, высоту пропорционально но кратно 2 (требование кодека), видео сжать софтверным h264, аудио кодеком AAC.libx264
— h264_videotoolbox
\.
const str = '1 августа 2022 г.';
str.replace(' г.', '') // "1 августа 2022"
replace()
использовать метод replaceAll()
arr.filter()
будет передавать по очереди каждое из чисел массива arr
в функцию,true
. См. документацию Array.prototype.filter()true
для чисел, у которых первая цифра 1, 2 или 5."Habr"[0] // "H"
вот тут такой вариант и используют.[0]
короче. new Promise()
куда-то сдвинулся,new Promise((resolve, reject) => {
// что угодно происходит
// и в какой-то момент
resolve(value);
});
setAttribute()
или removeAttribute()
для управления атрибутом disabled
id
элементов должны начинался только с буквы. <template>
— из него можно забирать готовый DocumentFragment, который клонировать и наполнять данными.