Array Unique


Array Unique adalah tidak ada duplikasi value dari sebuah array.


Misalkan kita memiliki dua buah array (masing-masing berbeda dalam operasi pembuatan array unique)

<cfset arrSatu = ArrayNew(1)>
<cfset arrDua = ArrayNew(1)>

<cfloop from="1" to="20" index="indexLoop">
	<cfset ArrayAppend(arrSatu, RandRange(1, 10))>
	<cfset ArrayAppend(arrDua, RandRange(1, 10))>
</cfloop>

<cfdump var="#arrSatu#" label="arrSatu sebelum dilakukan operasi">
<cfdump var="#arrDua#" label="arrDua sebelum dilakukan operasi">

Hasil dump dari arrSatu dan arrDua adalah

arrSatu sebelum dilakukan operasi

arrSatu sebelum dilakukan operasi

arrDua sebelum dilakukan operasi

arrDua sebelum dilakukan operasi

Untuk arrSatu kita lakukan operasi menggunakan loop dan fungsi ArrayFind (ArrayFind dan ArrayFindNoCase mulai ada di versi 9).

<!--- temporary array --->
<cfset arrSatuTemp = ArrayNew(1)>

<cfloop array="#arrSatu#" index="indexLoop">
	<cfif not ArrayFind(arrSatuTemp, indexLoop)>
		<cfset ArrayAppend(arrSatuTemp, indexLoop)>
	</cfif>
</cfloop>

<cfset arrSatu = arrSatuTemp>

<cfdump var="#arrSatu#" label="arrSatu setelah dilakukan operasi">

Hasil dump dari arrSatu adalah

arrSatu setelah dilakukan operasi

arrSatu setelah dilakukan operasi

Untuk arrDua kita lakukan operasi menggunakan loop dan struct

<!--- temporary structure --->
<cfset stDuaTemp = StructNew()>

<cfloop array="#arrDua#" index="indexLoop">
	<cfset stDuaTemp[indexLoop] = "">
</cfloop>

<cfset arrDua = StructKeyArray(stDuaTemp)>

<cfdump var="#arrDua#" label="arrDua setelah dilakukan operasi">

Hasil dump dari arrDua adalah

arrDua setelah dilakukan operasi

arrDua setelah dilakukan operasi

Kedua cara ini membutuhkan 1 temporary variable dan loop. Cara pertama bisa dilakukan menggunakan ColdFusion mulai versi 9, sedangkan cara kedua dapat dilakukan di sebelum versi ColdFusion 9.

Source code komplitnya

<cfset arrSatu = ArrayNew(1)>
<cfset arrDua = ArrayNew(1)>

<cfloop from="1" to="20" index="indexLoop">
	<cfset ArrayAppend(arrSatu, RandRange(1, 10))>
	<cfset ArrayAppend(arrDua, RandRange(1, 10))>
</cfloop>

<cfdump var="#arrSatu#" label="arrSatu sebelum dilakukan operasi">
<cfdump var="#arrDua#" label="arrDua sebelum dilakukan operasi">

<!--- temporary array --->
<cfset arrSatuTemp = ArrayNew(1)>

<cfloop array="#arrSatu#" index="indexLoop">
	<cfif not ArrayFind(arrSatuTemp, indexLoop)>
		<cfset ArrayAppend(arrSatuTemp, indexLoop)>
	</cfif>
</cfloop>

<cfset arrSatu = arrSatuTemp>

<cfdump var="#arrSatu#" label="arrSatu setelah dilakukan operasi">

<!--- temporary structure --->
<cfset stDuaTemp = StructNew()>

<cfloop array="#arrDua#" index="indexLoop">
	<cfset stDuaTemp[indexLoop] = "">
</cfloop>

<cfset arrDua = StructKeyArray(stDuaTemp)>

<cfdump var="#arrDua#" label="arrDua setelah dilakukan operasi">

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: