Removing the first element in an array without using array methods

Viewed 430

So I have homework that requires me to dequeue from an array like so:

let arr = [1, 2, 3]

My only problem is that I'm restricted in using any array method except for the .length method.

I have tried using the delete to remove the first element but I know it doesn't adjust the array and reflects undefined for the first element:

function dequeue(){
  delete arr[0];
  console.log(arr)
}

Any help or advice on how to do it is highly appreciated.

4 Answers

Assuming, you can still use assigment with index, you could copy all items one index before and decrement the length of the array.

let array = [1, 2, 3];

for (let i = 1; i < array.length; i++) array[i - 1] = array[i];

array.length--;

console.log(array);

If .map is allowed to use in your case.

array = array.map((elm,index,arr) => arr[index+1]);
array.length--;

You can use Destructuring assignment. try this out:

const [firstElement, ...restOfTheArray] = yourArray;

restOfTheArray is the same array with the first element removed.

For left shift:

function shiftArrLeft(arr) {
        let a = arr[0];
        let newArr = [];
        for (let i = 1; i <= arr.length - 1; i++) {
            newArr[i - 1] = arr[i];
        }
        newArr[newArr.length] = a;
        console.log(newArr);
    }

For right shift:

function shiftArrRight(arr) {
    let a = arr[arr.length - 1];
    let newArr = [];
    for (let i = 0; i < arr.length - 1; i++) {
        newArr[i + 1] = arr[i];
    }
    newArr[0] = a;
    console.log(newArr);
}
Related