Задачка Яваскрипт, из столбика делаем столбики
Объясняю задачку, имеет длинный stolbik.txt, надо зачитать, подробить и на экран вывести.
выводим их по 7 штук, чтоб над каждой группой был свой порядковый номер, и у строчек тоже.
Было (stolbik.txt):
1.414211.732052.236062.449482.645752.828423.162274.472135.477226.324557.707107.745968.366608.944279.48683
Стало на экране (mypanel):
Group 1
01 1.41421
02 1.73205
03 2.23606
04 2.44948
05 2.64575
06 2.82842
07 3.16227
Group 2
01 4.47213
02 5.47722
03 6.32455
04 7.70710
05 7.74596
06 8.36660
07 8.94427
Group 3
01 9.48683
...
...
Я хотел текстовой список как "скрипт" переименовать и как вариаблу читать, как в прошлом примере, оказывается вариаблы только в сточке бывают.
Вот тут пишут, показывают много примеров как зачитывают текст в броузер с яваскриптом:
https://stackoverflow.com/questions/14446447/how-to-read-a...
но мне то надо не просто показать, а ещё поделить на кучки по 7 штучек, там не пишут как!
Сначала предложили подработать на блокчейне, а потом заставили постоянно заниматься джаваскриптизом.
Купите уже себе книжку "Джаваскрипт за 21 час". Если с блокчейном потом вдруг не выгорит - сможете скриптизёром устроиться. ))
Никаких сторонних серверов, файл лежит у меня на рабочем столе 10тысяч строк, а как обозвать .txt или .js без разницы.
Я запарюсь отщипывать по 7 штук вручную. Надо чтоб появилась структура, чтоб файл отобразился в группах в HTML или TXT.
А о целесообразности, мне что теперь ВижуалСтудио устанавливать? У меня все такие задачки, тексты туда-сюда сортировать,
Задачка идеально решалась бы в Batch, но как я уже говорил, я не программист, просто нужно немного текста преобразовать.
Никаких сторонних серверов, файл лежит у меня на рабочем столе 10тысяч строк, а как обозвать .txt или .js без разницы.
да ты же гений! Где ты раньше был, когда я сканы преобразовывал в текст FineReader‘ом. Надо было просто расширения файла поменять 🤣
Бесконечный цикл : Думаю цикл мог бы решить задачу.
Ну так в чём же дело? Если можешь - помоги решить задачку.
Слишком сложная задача для обычных find-replace. Действительно, лучше сделать на языке программирования, желательно с механизмом, похожим на LINQ в C#. Ну или циклы вручную (по индексам) гонять.
Выучите один раз какой-нибудь язык (шарп, джаваскрипт или ещё что-то) ну уровне процедурного программирования - как раз циклы и объявления переменных. Ну и как открыть, прочитать и сохранить в файл по строкам. Например.
Беспомощный блокчейнер! Тебя от миллионов отделяет лишь полтора часа обучения Шарпу и полчаса постановки Студии. А ну взял свою задницу в руки в темпе и погнал ставить и изучать! Рохля, размазня! Ты же будущий мультимиллионер! У Мура спроси, какой там ценз. Учись вести себя подобающе! Случайного залётного разбогатея настоящие миллионеры быстро раскусят, разденут и пустят голым в Африку.
Не, реально, когда заманивали на блокчейн, не говорили, что надо файлы пачками преобразовывать. Говорили, что деньги башляешь и тебе обратно в разы больше дают.
ПС. Пипец, там 43 ролика. Я только первые 7-8 видел.
Я ЖС забыл уже давно (как страшный сон), но вот пару народно крестьянских методов (через цикл):
function chunkArrayInGroups(arr, size) {
var myArray = [];
for(var i = 0; i < arr.length; i += size) {
myArray.push(arr.slice(i, i+size));
}
return myArray;
}
console.log(chunkArrayInGroups(["a", "b", "c", "d"], 2));
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
var arrays = [], size = 3;
while (a.length > 0)
arrays.push(a.splice(0, size));
console.log(arrays);
Ну или для эстетов:
const chunks = (a, size) =>
Array.from(
new Array(Math.ceil(a.length / size)),
(_, i) => a.slice(i * size, i * size + size)
);
let a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
console.log(chunks(a, 3));
console.log(chunks(a, 2));
Взято из поиска по "javascript split array into chunks"
Надо теперь как-то прочитать и записать в файл.
на коленке
файл с одной колонкой
$ for i in {1..30}; do echo $RANDOM >> testfile.txt; done
как бы скрипт
#!/bin/bash
group=1
member=1
cat $1 | while read line; do
if [[ "$member" -eq 1 ]]; then
echo "=== group: $group ==="
echo "$member: $line"
((member++))
elif [[ "$member" -lt 7 ]]; then
echo "$member: $line"
((member++))
else
echo "$member: $line"
echo ""
member=1
((group++))
fi
done
как бы запускаем
$ ./script.sh testfile.txt=== group: 1 ===
1: 15414
2: 23089
3: 5837
4: 5311
5: 14649
6: 11802
7: 31615
=== group: 2 ===
1: 13278
2: 26622
3: 31584
4: 4272
5: 6595
6: 6845
7: 3503
=== group: 3 ===
1: 5746
2: 21224
3: 9076
4: 7856
5: 16592
6: 18625
7: 28218
=== group: 4 ===
1: 5944
2: 24458
3: 29901
4: 25955
5: 14129
6: 17805
7: 14430
=== group: 5 ===
1: 31577
2: 20553