Assume we have an array [5, 3, 7, 8]
such that the first index value is moved to the back while preserving the original order resulting in [3, 7, 8, 5]
Let's consider what we need to accomplish this. First, an array: let values = [5, 3, 7, 8];
we will be announcing values
as list
because list
is the named parameter for the function further along.
With a for loop we will be traversing over an array to perform changes.
A for loop can be broken into three parts.
for (initialization; test; update) {
statements....
}
However, let's dissect our for loop. For our initialization
let's start at zero since arrays start with an index at zero. let i = 0;
0 1 2 3
[5, 3, 7, 8] // length is 4
Our test
will evaluate when i
is less than the list’s length minus one. That is because our array [5, 3, 7, 8]
has a length of four, yet we only want to shift three values, but not including the number five. Yielding in i < list.length - 1;
and update
is represented by i++
for (let i = 0; i < list.length - 1; i++) {
}
Now let's think about our three values that are going to get shifted.
0 1 2 3
[5, 3, 7, 8] // Original Array; Length 4
0 1 2 3
[3, 7, 8, 5] // Shifted Array; Length 4
Shift = Original
list[0] = list[1];
list[1] = list[2];
list[3] = list[4];
Generally described as:
list[i] = list[i + 1];
The list
first index value will be placed in a variable let idx = list[0];
So idx
will be declared before the for loop since we are only shifting the remaining three values.
After the for loop is done iterating we will type list[list.length - 1] = idx;
to store idx
into list’s
last index. After, we can wrap all the code in a function called shiftLeft
which will take an array as a parameter.
Our final code is:
"use strict";
let values = [5, 3, 7, 8];
console.log(values) // [5, 3, 7, 8];
function shiftLeft(list) {
let idx = list[0];
for (let i = 0; i < list.length - 1; i++) {
list[i] = list[i + 1]
}
list[list.length - 1] = idx;
console.log(list)
}
shiftLeft(values); // [3, 7, 8, 5];
Top comments (0)