JS array functions

// whole

function copy_array( a ) {
	
	// USE: var b = copy_array( a );
	
	// ALGO: low
	// DATE: 2025-09-26 21:00
	// DESC: see name
	// LANG: JS
	// TAGS: array, copy
	
	var i;
	var b = [];
	
	for ( i=0; i<a.length; i++ ) b[i] = a[i];
	
	return b;
	
} // function

function reverse_array( a ) {
	
	// USE: var b = reverse_array( a );
	
	// ALGO: low
	// DATE: 2025-09-26 21:05
	// DESC: see name
	// LANG: JS
	// TAGS: array, reverse
	
	var l = a.length;
	var i;
	var b = [];
	
	for ( i=0; i<l; i++ ) b[i] = a[l-1-i];
	
	return b;
	
} // function

function replace_array( a, b ) {
	
	// ALGO: low
	// DATE: 2025-09-26 21:10
	// DESC: see name
	// LANG: JS
	// TAGS: array
	
	/*
	
	a = [];
	
	a = copy_array( b );
	
	*/
	
	// TAGS: array, replace
	
} // function

function sort_array( a ) {
	
	// USE: var b = sort_array( a );
	
	// ALGO: low
	// DATE: 2025-09-26 21:05
	// DESC: see name
	// LANG: JS
	// TAGS: array, sort
	
	var b = a.sort();
	
	return b;
}

// elements

	// check
	
function check_element_of_array( a, v ) {
	
	// USE: var sw = check_element_of_array( a, v );
	
	// ALGO: low
	// DATE: 2025-09-26 21:20
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, check
	
	var sw = check_element_of_part_of_array( a, v, 0, a.length-1 );
	
	return sw;
	
} // function

function check_element_of_part_of_array( a, v, i, j ) {
	
	// var sw = check_element_of_part_of_array( a, v, i, j );
	
	// ALGO: low
	// DATE: 2025-09-26 21:25
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, check
	
	var k;
	var sw = false;
	
	for ( k=i; k<=j; k++ ) {
		
		if ( a[k] == v ) { // match
			
			sw = true;
			
			break;
			
		} // if
		
	} // for
	
	return sw;
	
} // function

	// count
	
function count_elements_of_array( a ) {
	
	// USE: var c = count_elements_of_array( a );
	
	// ALGO: low
	// DATE: 2025-09-26 21:30
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, count
	
	var c = a.length;
	
	return c;
	
} // function

function count_element_of_array_by_value( a, v ) {
	
	// USE: var c = count_element_of_array_by_value( a, v );
	
	// ALGO: low
	// DATE: 2025-09-26 21:35
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, count
	
	var i;
	var c = 0;
	
	for ( i=0; i<a.length; i++ ) {
		
		if ( a[i] == v ) c++;
		
	} // for
	
	return c;
	
} // function

function count_values_of_array( a ) {
	
	// USE: var r = count_values_of_array( a );
	
	// ALGO: medium
	// DATE: 2025-09-26 21:40
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, count
	
	var b = get_unique_elements_of_array( a );
	
	var e, c;
	var r = [];
	var s = 0;
	
	for ( i=0; i<b.length; i++ ) {
		
		e = b[i];
		
		c = count_element_of_array_by_value( a, e );
		
		r[s++] = e;
		r[s++] = c;
		
	} // for
	
	return r;
	
} // function

function count_values_of_sorted_array( a ) {
	
	// USE: var r = count_values_of_sorted_array( a );
	
	// ALGO: medium
	// DATE: 2025-09-26 21:45
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, count, sort
	
	var b = get_unique_elements_of_sorted_array( a );
	
	var e, c;
	var r = [];
	var s = 0;
	
	for ( i=0; i<b.length; i++ ) {
		
		e = b[i];
		
		c = count_element_of_array_by_value( a, e );
		
		r[s++] = e;
		r[s++] = c;
		
	} // for
	
	return r;
	
} // function

function sort_and_count_values_of_array( a ) {
	
	// USE: var b = sort_and_count_values_of_array( a );
	
	// ALGO: low
	// DATE: 2025-09-26 21:50
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, count, sort
	
	var b = a.sort();
	
	a = [];
	
	a = copy_array( b );
	
	b = [];
	
	b = count_values_of_sorted_array( a );
	
	return b;

} // function

	// delete
	
function delete_element_of_array( a, i ) {
	
	// USE: var b = delete_element_of_array( a, i );
	
	// ALGO: low
	// DATE: 2025-09-26 21:55
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, delete
	
	var j;
	var b = [];
	var c = 0;
	
	for ( j=0; j<a.length; j++ ) {
	
		if ( j != i ) b[c++] = a[j];
	
	} // for
	
	return b;
	
} // function

function delete_elements_of_array_by_value( a, v ) {
	
	// USE: var b = delete_elements_of_array_by_value( a, v );
	
	// ALGO: low
	// DATE: 2025-09-26 22:00
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, delete

	var i;
	var b = [];
	var c = 0;
	
	for ( i=0; i<a.length; i++ ) {
	
		e = a[i];
		
		if ( e != v ) b[c++] = e;
	
	} // for
	
	return b;

} // function

function delete_empty_elements_of_array( a ) {
	
	// USE: var b = delete_empty_elements_of_array( a );
	
	// ALGO: low
	// DATE: 2025-09-26 22:05
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, delete
	
	var b = delete_elements_of_array_by_value( a, "" );
	
	return b;
	
}

function delete_repetitive_elements( a ) {
	
	// USE: var b = delete_repetitive_elements( a );
	
	// ALGO: low
	// DATE: 2025-09-26 22:10
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, delete
	
	var i, e;
	var b = [];
	var c = 0;
	
	for ( i=0; i<a.length; i++ ) { 
	
		e = a[i];
		
		if ( i < 1 ) {
			
			b[c++] = e;
			
		} else {
	
			if ( e != a[i-1] ) b[c++] = e;
			
		} // if/else
		
	} // for
	
	return b;
	
} // function

	// unique elements

function get_unique_elements_of_array( a ) {
	
	// USE: var b = get_unique_elements_of_array( a );
	
	// ALGO: medium
	// DATE: 2025-09-26 22:15
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, unique
	
	var i, e, sw;
	var b = [];
	var c = 0;
	
	for ( i=0; i<a.length; i++ ) { // loop through whole array
	
		e = a[i];
	
		if ( i < 1 ) {
			
			b[c++] = e;
			
		} else {
			
			sw = check_element_of_part_of_array( a, e, 0, i-1 ); // check array part above element
			
			if ( sw == false ) b[c++] = e;
			
		} // if/else
		
	} // for
	
	return b;
	
} // function

function get_unique_elements_of_sorted_array( a ) {
	
	// USE: var b = get_unique_elements_of_sorted_array( a );
	
	// ALGO: low
	// DATE: 2025-09-26 22:20
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, unique, sort
	
	var b = delete_repetitive_elements( a );
	
	return b;
	
} // function

function sort_and_get_unique_elements_of_array( a ) {
	
	// USE: var b = sort_and_get_unique_elements_of_array( a );
	
	// ALGO: low
	// DATE: 2025-09-26 22:25
	// DESC: see name
	// LANG: JS
	// TAGS: array, element, unique, sort
	
	var b = a.sort();
	
	a = [];
	
	a = copy_array( b );
	
	b = [];
	
	b = get_unique_elements_of_sorted_array( a );
	
	return b;

} // function