Ask coding questions

← Back to all posts
I don't have a clue! please help urgently
ayormeday (10)

function insertIntoMiddle(array, item) {

}

/ Do not modify code below this line /

Modify the function to insert the given number into the exact middle of the array and return the array.

const items = insertIntoMiddle([1, 3], 2);
console.log(insertIntoMiddle([1, 3], 2), '<-- should be [1, 2, 3]');
console.log(insertIntoMiddle([1, 3, 7, 9], 5), '<-- should be [1, 3, 5, 7, 9]');

Commentshotnewtop
mwilki7 (450)

Find the space you need to split in half:
var half = Math.ceil(array.length / 2);

Split the array at this index 'half'

Get the left half
var leftSide = array.slice(0, half);

Get the right half
var rightSide = array.slice(half, array.length);

insert a line here that pushes a new value to the left side

Now we mash the two arrays back together:
array = leftSide.concat(rightSide);

ash15khng (471)

Do you have any code yet? We can't just give you answers for your homework, but if you have any questions or errors we can help.

ayormeday (10)

@ash15khng
array.splice(2,1,item);
return array;

ash15khng (471)

@ayormeday That wouldn't work, as it assumes that the item is always at index 2, and replaces 1 item at index 2. Your solution is close though.

function insertIntoMiddle(array, item) {
    let middle = array.length / 2;
    array.splice(middle, 0, item);
    return array;
}

array.splice takes 3 arguments, which are:

  • the position or index of the item you're replacing
  • the number of items you're replacing (set to 0 if you want to insert)
  • the item you're replacing
    So by this logic, you need to get the index of the item in the middle, (the variable middle), then replace 0 items at index middle with item.

Hope this helps! If it's a bit confusing, feel free to ask questions.

niorg2606 (105)

What you want to do is create a new array with three parts: the first half of the original array, the middle number, and the last half of the original array. What language are you using?