• JavaScript Video Tutorials

JavaScript - TypedArray copyWithin() Method



The JavaScript TypedArray copyWithin() method copies elements within the same TypedArray to another location and returns the modified TypedArray without changing its original length. It accepts three parameters, one of named is the target.

If the target parameter value is negative, it will start inserting an element at the end of the typed array. For example, if target = −1, the value will be inserted at the end of the current typed array.

In JavaScript, TypedArrays are array like objects that provide a mechanism for reading and writing raw binary data in memory buffers.

Syntax

Following is the syntax of JavaScript TypedArray copyWithin() method −

copyWithin(target, start, end)

Parameters

This method accepts three parameters named 'target', 'start', and 'end', which are described below −

  • target − The Zero-based index (position) at which the elements start inserting.

  • start − The zero-based index at which the elements start copying.

  • end (optional) −The Zero-based index at which end to copying the elements. The method copies up to the end but excludes it.

Return value

This method returns a modified TypedArray without changing the length of the original TypedArray.

Examples

Example 1

If we pass only the target and start parameters to this method, it starts inserting elements at the specified target position (which is 3), and it begins copying elements from the original TypedArray starting at the specified start position (which is 0) until the length of the copied elements is equivalent to the original TypedArray ([1, 2, 3, 4, 5, 6, 7, 8]).

<html>
<head>
   <title>JavaScript TypedArray copyWithin() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
      document.write("Original TypedArray: ", T_array);
      const target = 3;
      const start = 0;
      document.write("<br>Target(start insert) position at: ", target);
      document.write("<br>Start copying position at: ", start);
      T_array.copyWithin(target, start);
      document.write("<br>Modified TypedArray: ", T_array);
   </script>    
</body>
</html>

Output

The above program returns modified typed array as [1,2,3,1,2,3,4,5].

Original TypedArray: 1,2,3,4,5,6,7,8
Target(start insert) position at: 3
Start copying position at: 0
Modified TypedArray: 1,2,3,1,2,3,4,5

Example 2

If we pass all three parameters (target, start, and end) to this method, it starts inserting elements at the specified target position (which is 4), and it begins copying elements from the original TypedArray starting at the specified start position (which is 1) up to, but excluding, the specified end position (which is 3). The remaining elements remain unchanged.

<html>
<head>
   <title>JavaScript TypedArray copyWithin() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([1, 2, 3, 0, 0, 0, 0, 0]);
      document.write("Original TypedArray: ", T_array);
      const target = 4;
      const start = 1;
      const end = 3;
      document.write("<br>Target(start insert) position at: ", target);
      document.write("<br>Start copying position at: ", start);
      document.write("<br>End(stop copying) position at: ", end);
      T_array.copyWithin(target, start, end);
      document.write("<br>Modified TypedArray: ", T_array);
   </script>    
</body>
</html>

Output

After executing the above program, it returns a modified typed array as [1,2,3,0,2,3,0,0].

Original TypedArray: 1,2,3,0,0,0,0,0
Target(start insert) position at: 4
Start copying position at: 1
End(stop copying) position at: 3
Modified TypedArray: 1,2,3,0,2,3,0,0

Example 3

If the target parameter value is negative (-1), it inserts the element at the end of this TypedArray [1, 2, 3, 4, 5, 6, 7, 8].

<html>
<head>
   <title>JavaScript TypedArray copyWithin() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
      document.write("Original TypedArray: ", T_array);
      const target = -1;
      const start = 1;
      const end = 3;
      document.write("<br>Target(start insert) position at: ", target);
      document.write("<br>Start copying position at: ", start);
      document.write("<br>End(stop copying) position at: ", end);
      T_array.copyWithin(target, start, end);
      document.write("<br>Modified TypedArray: ", T_array);
   </script>    
</body>
</html>

Output

Once the above program is executed, it returns a modified TypedArray as −

Original TypedArray: 1,2,3,4,5,6,7,8
Target(start insert) position at: -1
Start copying position at: 1
End(stop copying) position at: 3
Modified TypedArray: 1,2,3,4,5,6,7,2
Advertisements