when using nsort on new values (e.g. value::index note :: is a character
used to create new entries) it fails.
One solution is as below, but for large number index - value (e.g 200 or
more) the solution is very slow

This solution contains

1. a populate macro to list all values
2. a wikify and list widget let sort values
3. a lookup macro to find index(s) for a value

\define  dataTiddler() myData
\define myfilter() [<dataTiddler>indexes[]]

\define populate()
<$list filter="[subfilter<myfilter>]">
<$text text={{{[<dataTiddler>getindex<currentTiddler>]}}}/>
</$list>
\end

\define lookup-index(val)
<$list filter="[subfilter<myfilter>]" variable=idx>
<$list filter="[<dataTiddler>getindex<idx>] +[match[$val$]]">
<tr>
<td><$link to=<<idx>> /></td><td> $val$ </td>
</tr>
</$list>
</$list>
\end


<table>
<$wikify name=u text=<<populate>> >
<$list filter="[enlist<u>nsort[]]">
<$macrocall $name=lookup-index val=<<currentTiddler>> />
</$list>
</$wikify>
</table>


The above can be tested in https://tiddlywiki.com/ if one creates a data
tiddler with the myData title containing the data of the previous post.

Question: as stated above this solution is very slow for large numbers of
data (index-value pairs). What alternative solution do you propose?

Best wishes
Mohammad


On Thu, Feb 18, 2021 at 10:07 PM Mohammad Rahmani <
[email protected]> wrote:

> This is an old question and there are several solution for that, but not
> for the case I explain here
>
> Assume you have a dataTiddler or JSON tiddler with data like below
>
> nella: -1
> rita: 1
> villa: 0
> lola: -7
> sina: 3
> cobra: 2
> fifa: -2
> zila: 3
> afra: 1
>
>
> I want to list data in this dictionary table sorted by value, so I should
> have
>
>   lola: -7
>   fifa: -2
>   nella: -1
>   villa: 0
>   afra: 1
>   rita: 1
>   cobra: 2
>   sina: 3
>   zila: 3
>
> Note, there are duplicated values. The solution is that new entries
> created from appending value to index like value::index do not work here!
> As you need to use nsort
>
>
>
> Best wishes
> Mohammad
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/CAAV1gMBgGadqSKbJb2%2BVhCFW%3DZxht1gn00gaBDa4S294bcVCGA%40mail.gmail.com.

Reply via email to