/*______________
| ______ | U I Z E J A V A S C R I P T F R A M E W O R K
| / / | ---------------------------------------------------
| / O / | MODULE : Uize.Array.Join Package
| / / / |
| / / / /| | ONLINE : http://uize.com
| /____/ /__/_| | COPYRIGHT : (c)2007-2016 UIZE
| /___ | LICENSE : Available under MIT License or GNU General Public License
|_______________| http://uize.com/license.html
*/
/* Module Meta Data
type: Package
importance: 2
codeCompleteness: 100
docCompleteness: 100
*/
/*?
Introduction
The =Uize.Array.Join= module provides methods for joining arrays to form strings.
*DEVELOPERS:* `Chris van Rensburg`
*/
Uize.module ({
name:'Uize.Array.Join',
builder:function () {
'use strict';
return Uize.package ({
hugJoin:function (_items,_prefix,_suffix,_separator) {
return (
_items.length
? (
'' + _prefix +
_items.join ('' + _suffix + (_separator != undefined ? _separator : '') + _prefix) +
_suffix
)
: ''
);
/*?
Static Methods
Uize.Array.Join.hugJoin
Returns a string, that is the concatenation of the specified array of items, where a prefix and suffix can be specified for hugging each item in the array, and where an optional separator can additionally be specified.
SYNTAX
.............................................................................
joinedSTR = Uize.Array.Join.hugJoin (itemsARRAY,itemPrefixSTR,itemSuffixSTR);
.............................................................................
EXAMPLE 1
.....................................................
var actions = ['view','reset','save','open','close'];
alert (Uize.Array.Join.hugJoin (actions,'[ ',' ]'));
.....................................................
EXAMPLE 1 - OUTPUT
..........................................
[ view ][ reset ][ save ][ open ][ close ]
..........................................
VARIATION
..........................................................................................
joinedSTR = Uize.Array.Join.hugJoin (itemsARRAY,itemPrefixSTR,itemSuffixSTR,separatorSTR);
..........................................................................................
When the optional =separatorSTR= parameter is specified, then the items being joined will be separated by the specified separator string. This provides you with the functionality you would normally get from the built-in =join= instance method of the =Array= object.
Technically, the statement =Uize.Array.Join.hugJoin (array,'','',separator)= would be equivalent to the statement =array.join (separator)=. But, if you just wanted to join an array with a separator string, then you would just use the =join= method, so the =separatorSTR= parameter is the last parameter and is optional for the =Uize.Array.Join.hugJoin= method, since the assumption is that you're likely using this method for its prefix/suffix feature.
EXAMPLE 2
..........................................................
var actions = ['view','reset','save','open','close'];
alert (Uize.Array.Join.hugJoin (actions,'[ ',' ]',' - '));
..........................................................
EXAMPLE 2 - OUTPUT
......................................................
[ view ] - [ reset ] - [ save ] - [ open ] - [ close ]
......................................................
EXAMPLE 3
...................................................................................
var actions = ['view','reset','save','open','close'];
alert (Uize.Array.Join.hugJoin (actions,'\t','\n')); // on separate lines, indented
...................................................................................
EXAMPLE 3 - OUTPUT
........
view
reset
save
open
close
........
EXAMPLE 4
................................................................................
var actions = ['view','reset','save','open','close'];
alert (Uize.Array.Join.hugJoin (actions,'action: "','"\n','---------------\n'));
................................................................................
EXAMPLE 4 - OUTPUT
................
action: "view"
---------------
action: "reset"
---------------
action: "save"
---------------
action: "open"
---------------
action: "close"
................
*/
}
});
}
});