Open In App

JavaScript Atomics sub() Method

Among the Atomic Operations, there is a method Atomics.sub() that is used to subtract a given value at a given position in the array and return the old value at that position. No other write operation can happen until the modified value is written back.

Syntax: 



Atomics.sub(typedArray, index, value)

Parameters: 

Return Value: Atomics.sub() returns the old value at the given position (typedArray[index]). 



Examples of the above function are provided below.

Examples: 

Input : arr[0] = 9;
        Atomics.sub(arr, 0, 3);
Output : 9
 
Input : arr[0] = 3; 
        Atomics.sub(arr, 0, 2);
Output : 3

Examples of the above function are provided below.

Example 1:  




// creating a SharedArrayBuffer
let buf = new SharedArrayBuffer(25);
let arr = new Uint8Array(buf);
// Initialising element at zeroth position of array with 9
arr[0] = 9;
  
// Displaying the return value of the Atomics.sub() method 
console.log(Atomics.sub(arr, 0, 3));
  
// Displaying the updated SharedArrayBuffer 
console.log(Atomics.load(arr, 0));

Output : 

9
6

Example 2: 




// creating a SharedArrayBuffer 
let buf = new SharedArrayBuffer(25);
let arr = new Uint8Array(buf);
  
// Initialising element at zeroth position of array with 3
arr[0] = 3;
  
// Displaying the return value of the Atomics.sub() method 
console.log(Atomics.sub(arr, 0, 2));
  
// Displaying the updated SharedArrayBuffer 
console.log(Atomics.load(arr, 0));

Output: 

3
1

Application: Whenever we want to update(subtract) a value at a specified position in a given array and want the older value which was at that position to be returned, we use the Atomics.sub() operation in JavaScript.

Example:




// creating a SharedArrayBuffer 
let mybuffer = new SharedArrayBuffer(25);
let myarray = new Uint8Array(mybuffer);
  
// Initialising the element at zeroth position of array
myarray[0] = 40;
  
// Displaying the return value of the Atomics.sub() method
console.log(Atomics.sub(myarray, 0, 20));
  
// Displaying the updated SharedArrayBuffer 
console.log(Atomics.load(myarray, 0));

Output : 

40
20

Exceptions :

Supported Browser:

We have a complete list of Javascript Atomic methods, to check those please go through this JavaScript Atomics Complete Reference article.

We have a Cheat Sheet on Javascript where we covered all the important topics of Javascript to check those please go through Javascript Cheat Sheet-A Basic guide to JavaScript.  


Article Tags :