# Inför futtiga funktioner

{% hint style="info" %}
A-nivå, [repo](https://github.com/1dv021/exercise-pre-tiny-funcs.git), [lösningsförslag](https://github.com/1dv021/exercise-solution-proposals/tree/master/part-1/pre-tiny-funcs).
{% endhint %}

{% hint style="danger" %}
**VIKTIGT!** Innan du börjar arbeta med övningsuppgiften är det viktigt att du följer guiden [Att komma igång med en övningsuppgift](/1dv021/guider/att-komma-igang-med-en-ovningsuppgift.md) för att lägga till övningsuppgiftens repo till ditt repo för övningsuppgifter.
{% endhint %}

## Uppgift

Hämta hem övningsuppgiftens repo och lägg till en .gitignore-fil. Öppna filen `src\mf.js` och komplettera de nio funktionerna enligt specifikationerna. Du behöver inte tänka på att implementera någon form av felhantering.

## Funktioner

### roundUp

Funktionen ska avrunda parameterns värde uppåt och returnera det avrundade heltalsvärdet.

* Värdet `12.3` ska avrundas uppåt till `13`.
* Värdet `19.8` ska avrundas uppåt till `20`.

### roundDown

Funktionen ska avrunda parameterns värde nedåt och returnera det avrundade heltalsvärdet.

* Värdet `12.3` ska avrundas nedåt till `12`.
* Värdet `19.8` ska avrundas nedåt till `19`.

### round

Funktionen ska avrunda parameterns värde till närmaste heltal och returnera det avrundade heltalsvärdet.

* Värdet `15.1` ska avrundas till `15`.
* Värdet `17.8` ska avrundas till `18`.

### getStringLength

Funktionen ska returnera parameterns, som är av typen string, längd, d.v.s. antalet tecken strängen innehåller.

* Är parameterns värde `'I don't need Google, my wife knows everything!'` ska värdet `46` returneras.

### getFirstLetter

Funktionen ska returnera det första tecknet som parametern, som är av typen string, innehåller.

* Är parameterns värde `'Byte me!'` ska värdet `'B'` returneras.

### getIndexOfQuestionMark

Funktionen ska returnera indexet som det första frågetecknet har som parametern, som är av typen string, innehåller. Innehåller strängen inget frågetecken ska värdet `-1` returneras.

* Är parameterns värde `'What's a programmer? An organism that turns caffiene and pizza into software.'` ska värdet `19` returneras.
* Är parameterns värde `'In c<>de we trust.'` ska värdet `-1` returneras.

### isEqual

Funktionen ska returnera värdet `true` om de två strängarna som skickas till funktionen är lika; annars `false`.

### isOdd

Funktionen ska returnera värdet `true` om heltalet som skickas till funktionen är udda; annars `false`.

### isEven

Funktionen ska returnera värdet `true` om heltalet som skickas till funktionen är jämt; annars `false`.

## &#x20;Tips

Genom att köra testerna som kommer med övningsuppgiften kan du undersöka om koden du skrivit löst uppgiften (i alla fall enligt testerna...).

Funktioner, metoder, etc. som *kan* komma till användning beroende hur du väljer att lösa uppgiften.

* [Math.ceil](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil)
* [Math.round](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round)
* [Math.floor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor)
* [String.length](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length)
* [String.charAt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt)
* [String.indexOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf)
* [%, restoperator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Remainder)&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coursepress.gitbook.io/1dv021/ovningsuppgifter/del-1/a-niva/infor-futtiga-funktioner.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
