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]');

mwilki7 (1078)

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 (684)

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)

return array;

ash15khng (684)

@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.

SixBeeps (2833)

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?