How to move an array element from one array position to another in JavaScript?
In JavaScript we can access an array element as other programming languages like C, C++, Java etc. Also there is a method called splice() in JavaScript, by which an array can be removed or replaced by another element for an index. So to move an array element from one array position to another we can splice() method or we can simply use array indexing ([]).
Example 1: Simple code for moving an array element from one array position to another, without using any functions.
javascript
<script> var arr = [ "C++" , "Java" , "JS" , "Python" ]; console.log( "Original array: " +arr); // Position where from the element is // going to move here 'python' is moved var x = 3; // Position at which element is to be // moved here 'python' is moved to // index 1 which is index of 'Java' var pos = 1; // Store the moved element in a temp // variable var temp = arr[x]; // shift elements forward var i; for (i = x; i >= pos; i--) { arr[i] = arr[i - 1]; } // Insert moved element at position arr[pos] = temp; console.log( "After move: " +arr); </script> |
Output :
Original array: C++,Java,JS,Python After move: C++,Python,Java,JS
Example 2: Now move an array element from one array position to another using function.
javascript
<script> var arr = [ "C++ " , "Java " , "JS " , "Ruby " , "Python " ]; // Print the array before moving console.log( "Original array: " +arr); // Position where from the element is // going to move here 'Ruby' is moved var moveEle = 3; // Position at which element is to be moved // here 'Ruby' is moved to index 1 which is // index of 'Java' var moveToIndx = 1; // If actual index of moved element is // less than 0 when 'moveEle += array size' while (moveEle < 0) { moveEle += arr.length; } // Where the element to be moved f that // index is less than 0 when // 'moveToIndx += array size' while (moveToIndx < 0) { moveToIndx = moveToIndx + arr.length; } // If 'moveToIndx' is greater than the // size of the array then with need to // push 'undefined' in the array. if (moveToIndx >= arr.length) { var un = moveToIndx - arr.length + 1; while (un--) { arr.push(undefined); } } // Here element of 'moveEle' is removed and // pushed at 'moveToIndx' index arr.splice(moveToIndx, 0, arr.splice(moveEle, 1)); // Print the array after moving console.log( "<br>After move: " +arr); </script> |
Output :
Original array: C++ ,Java ,JS ,Ruby ,Python After move: C++ ,Ruby ,Java ,JS ,Python
Please Login to comment...