temp

// array

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
	// TEST: ok
	
	var b = a;
	
	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
	// TEST: ok
	
	var l = a.length;
	var i;
	var b = [];
	
	for ( i=0; i<l; i++ ) b[i] = a[l-1-i];
	
	return b;
	
} // 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
	// TEST: ok
	
	var b = a.sort();
	
	return b;
	
} // function

// elements

	// check

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

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

    // multiple values

function check_multiple_elements_of_array_by_value_via_and( a, b ) {
  
  // var sw = check_multiple_elements_of_array_by_value_via_and( a, b );
  
  var sw = check_multiple_elements_of_part_of_array_by_value_via_and( a, b, 0, a.length-1 );
  
  return sw;
  
} // function

function check_multiple_elements_of_array_by_value_via_or( a, b ) {
  
  // var sw = check_multiple_elements_of_array_by_value_via_or( a, b );
  
  var sw = check_multiple_elements_of_part_of_array_by_value_via_or( a, b, 0, a.length-1 );
  
  return sw;
  
} // function

function check_multiple_elements_of_part_of_array_by_value_via_and( a, b, i, j ) {
  
  // var sw = check_multiple_elements_of_part_of_array_by_value_via_and( a, b, i, j );
  
  msw = true;
  
  for ( i=0; i<b.length; i++ ) {
    
    v = b[i];
    
    sw = check_element_of_part_of_array_by_value( a, v, i, j );
    
    if ( sw == false ) {
      
      msw = false;
      
      break;
      
    } // if
    
  } // for
  
  return msw;
  
} // function

function check_multiple_elements_of_part_of_array_by_value_via_or( a, b, i, j ) {
  
  msw = false;
  
  for ( i=0; i<b.length; i++ ) {
    
    v = b[i];
    
    sw = check_element_of_part_of_array_by_value( a, v, i, j );
    
    if ( sw == true ) {
      
      msw = true;
      
      break;
      
    } // if
    
  } // for
  
  return msw;
  
} // function

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

function count_elements_of_array_by_value( a, v ) {
	
	// USE: var c = count_elements_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_elements_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_elements_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
	
	a = a.sort();
	
	var b = count_values_of_sorted_array( a );
	
	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_by_value( 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
	
	a = a.sort();
	
	var b = get_unique_elements_of_sorted_array( a );
	
	return b;

} // function

	// add
	
function add_element_to_array_anywhere() {}

function add_array_to_array() {}

function add_array_to_array_anywhere() {}
	
	// delete
	
function delete_any_element_of_array( a, i ) {
	
	// USE: a = delete_any_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: a = 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: a = 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

function delete_repetitive_elements( a ) {
	
	// USE: a = 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

function delete_part_of_array() {}

// rectangular array

	// id, x, y
	
		// id

function get_rect_ar_id( x, y, yl ) {
	
	// var id = get_rect_ar_id( x, y, yl );
	
	var id = x * yl + y;
	
	return id;
	
} // function

		// x, y

function get_rect_ar_x( id, yl ) {
	
	// var x = get_rect_ar_x( id, yl );
	
	var y = get_rect_ar_y( id, yl );
	
	var x = ( id - y ) / yl;
	
	return x;
	
} // function

function get_rect_ar_y( id, yl ) {
	
	// var y = get_rect_ar_y( id, yl );
	
	var y = id % yl;
	
	return y;
	
} // function

	// xl
	
function get_rect_ar_xl( c, yl ) {
	
	// var xl = get_rect_ar_xl( c, yl );
	
	var rem = c % yl; // remainder
	
	var xl;
	
	if ( rem == 0 ) xl = c / yl;
	else xl = ( ( c - rem) / yl ) + 1;
	
	return xl;
	
} // function

	// set, get
	
function set_rect_ar_el( a, e, x, y, yl ) {
	
	// a = set_rect_ar_el( a, e, x, y, yl );
	
	var id = get_rect_ar_id( x, y, yl );
	
	a[id] = e;
	
	return a;
	
} // function

function get_rect_ar_el( a, x, y, yl ) {
	
	// var el = get_rect_ar_el( a, x, y, yl );
	
	var id = get_rect_ar_id( x, y, yl );
	
	var e = a[id];
	
	return e;
	
} // function

	// loop
	
function readme_loop_through_rect_ar() {
	
	var x, y;
	
	var xl = get_rect_ar_xl( c, yl );
	
	var id;
	
	for ( x=0; x<xl; x++ ) {
		
		for ( y=0; y<yl; y++ ) {
			
			id = get_rect_ar_id( x, y, yl );
			
			a[id] = true;
			
		} // for
		
	} // for
	
} // function