Перечислите несколько способов получения списка списков
Возьмем selectList
по полю Селект со множественными
значениями.
Возьмем колонку из $rowlist[[lists]]
в которой в каждой строке списки.
Как быстро превратить список списков в один список, соединив их последовательно?
Для этого используется listTrain — он склеивает списки друг за другом в один список.
id | field |
---|---|
0 | ["a","b","c"] |
1 | ["d","e","f"] |
2 | ["h","j","c"] |
Например такой код по этой таблице:
=: listTrain(list: $sel)
sel: selectList(table: $#ntn; field: 'field'; order: 'id' asc)
// Результат: ["a","b","c","d","e","f","h","j","c"]
Как превратить список в текст с переносами?
Есть похожая по названию на listTrain функция — listJoin.
Она делает другое действие — превращает список в текст.
Например, если вам нужно список взятый через selectList
текстом отправлять на печать, то можно это сделать при помощи listJoin.
В параметр str
можно передать клей — что-то чем будут склеиваться элементы списка. Если мы хотим, что бы в получившемся тексте каждый следующий элементы был с новой строки:
=: listJoin(list: $list; str: $#nl)
list: selectList(table: 'table'; field: 'field'; where: 'status' = "sold")
Как текст с разделителями превратить в список?
Есть обратная функция strSplit, которая текст превращает в список, ориентируясь на separator
.
Например у нас есть значение 23-4
, которое мы получили внутри цикла через:
=: str`$#nci + "-" + #id`
Те первая цифра у нас в этом значении — это номер цикла и нам нужно получить этот номер:
=: $split[0]
split: strSplit(str: #value; separator: "-")
А если нужен номер строки:
=: $split[1]
split: strSplit(str: #value; separator: "-")