# Array Week Challenge - Day 4

Hello! Another day, another challenge. LET'S GO!

### ⏰ There's still time!

Today marks halfway through this challenge week, and there's always time to catch up. 

This week so far:
- [Day 1](https://blog.barbaralaw.me/huntober-2022-day-8) 
- [Day 2](https://blog.barbaralaw.me/huntober-2022-day-9)
- [Day 3](https://blog.barbaralaw.me/huntober-2022-day-10)

## ⭐ Array Week

This week our challenges all deal with Arrays! Their purpose is to store a collection of things under a single reference name, but the way they are set up and used in JavaScript is a little different from other programming languages. If you're coming from a different language, be sure to check out what's different! While working on our challenges, feel free to use JavaScript's built-in [Array methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#instance_methods).

## 🏆 The Challenge - Day 4

** This week we'll be working with arrays toward a final puzzling result on Friday when we combine our daily functions. Your solutions should be built to work within any given daily constraints. **

Imagine, if you will, an array with length X, with each of its entries having X number of primitives as their entries. Now imagine it arranged as a grid.

```
// for the less imaginative among us :) 
[[0,1,2],[3,4,5],[6,7,8]]

// as a grid
[
[0,1,2],
[3,4,5],
[6,7,8]
]
```

Still with me? I hope so! Today I need your help moving some things around again. I'm always rearranging.

Please **write twin functions that each take in a given value that will only appear once within a given array of a similar structure to the one described above, which will either move that value up one row or down one row in the array, keeping its same horizontal position**. It will essentially swap places with whatever was where it needed to be. Just like in [Day 2](https://blog.barbaralaw.me/huntober-2022-day-9), don't do anything if the given value is already as high or low as it can get.

Oh, and go ahead and mutate the given array. *We're livin' on the wild side!*

Examples:

```
myGrid = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]

// call move up function with 'h' and myGrid
console.log(myGrid) = [['a', 'b', 'c'], ['d', 'h', 'f'], ['g', 'e', 'i']]

// call move up function again, same arguments
console.log(myGrid) = [['a', 'h', 'c'], ['d', 'b', 'f'], ['g', 'e', 'i']]

// call move up function again, same arguments
// Note that 'h' is already as far up as it can go
console.log(myGrid) = [['a', 'h', 'c'], ['d', 'b', 'f'], ['g', 'e', 'i']]

// call move down function this time, with 'f' and myGrid as arguments
console.log(myGrid) = [['a', 'h', 'c'], ['d', 'b', 'i'], ['g', 'e', 'f']]

// call move down function again, same arguments
// Note that 'f' is already as far down as it can go
console.log(myGrid) = [['a', 'h', 'c'], ['d', 'b', 'i'], ['g', 'e', 'f']]

```

Good luck, see you tomorrow!

---

#### *Wait, What's Huntober?*

*[Leon Noel's 100Devs](https://leonnoel.com/100devs/) are spending October preparing for the job hunt. Anyone who has already broken into a tech career knows that the application and interview process can be grueling! The current cohort has progressed this year all the way from basic HTML files to hosted full-stack applications with authentication and databases.*


*This month they'll continue to build, but will also work on data structures & algorithms, networking and interview skills, and solving code challenges.*
