ListUnique: Difference between revisions
Jump to navigation
Jump to search
New page: {{LSL Header}} __NOTOC__ <div id="box"> == Function: list ListUniq(list {{LSL Param|lAll }}; == <div style="padding: 0.5em;"> Given a list of elements, strips out duplicates in tha... |
++i is faster than i++. Just a little. |
||
| (4 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
{{LSL Header}} __NOTOC__ | {{LSL Header}} __NOTOC__ | ||
<div id="box"> | <div id="box"> | ||
== Function: [[list]] | == Function: [[list]] ListUnique([[list]] {{LSL Param|lAll) }}; == | ||
<div style="padding: 0.5em;"> | <div style="padding: 0.5em;"> | ||
Given a list of elements, strips out duplicates in that list. | Given a list of elements, strips out any duplicates in that list, and returns the de-duped list. | ||
See also: [[List|Lists]] | |||
<lsl> | <lsl> | ||
list | list ListUnique( list lAll ) { | ||
integer i; | integer i; | ||
list lFiltered = llList2List(lAll, 0, 0); | list lFiltered = llList2List(lAll, 0, 0); | ||
integer iAll = llGetListLength( lAll ); | integer iAll = llGetListLength( lAll ); | ||
for (i = 1; i < iAll; | for (i = 1; i < iAll; ++i) { | ||
if ( llListFindList(lFiltered, llList2List(lAll, i, i) ) == -1 ) { | if ( llListFindList(lFiltered, llList2List(lAll, i, i) ) == -1 ) { | ||
lFiltered += llList2List(lAll, i, i); | lFiltered += llList2List(lAll, i, i); | ||
| Line 23: | Line 26: | ||
Example:<br /> | Example:<br /> | ||
list mylist = | list mylist = ListUnique(["A", "A", "B", "C", "C", "B"]) | ||
would return the list: | would return the list: | ||
| Line 31: | Line 34: | ||
</div> | </div> | ||
Originated in a November 2004 thread led by Chromal Brodsky in the SL Scripting Forum. http://forums.secondlife.com/showthread.php?t=28137 | |||
{{LSLC|Examples| | {{LSLC|Examples|ListUnique}} | ||
Revision as of 17:29, 14 August 2008
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Function: list ListUnique(list lAll);
Given a list of elements, strips out any duplicates in that list, and returns the de-duped list.
See also: Lists
<lsl>
list ListUnique( list lAll ) {
integer i;
list lFiltered = llList2List(lAll, 0, 0);
integer iAll = llGetListLength( lAll );
for (i = 1; i < iAll; ++i) {
if ( llListFindList(lFiltered, llList2List(lAll, i, i) ) == -1 ) {
lFiltered += llList2List(lAll, i, i);
}
}
return lFiltered;
}
</lsl>
Example:
list mylist = ListUnique(["A", "A", "B", "C", "C", "B"])
would return the list:
["A", "B", "C"]
Originated in a November 2004 thread led by Chromal Brodsky in the SL Scripting Forum. http://forums.secondlife.com/showthread.php?t=28137