You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1536 lines
26 KiB

<div align="center">
<h1> 30 Days Of JavaScript: Arrays</h1>
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
</a>
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
</a>
<sub>Author:
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
<small> January, 2020</small>
</sub>
</div>
[<< Gün 4](../04_Day_Conditionals/04_day_conditionals.md) | [Gün 6 >>](../06_Day_Loops/06_day_loops.md)
![Day 5](../../images/banners/day_1_5.png)
- [📔 Gün 5](#-day-5)
3 years ago
- [Diziler ( Array )](#arrays)
3 years ago
- [Boş bir dizi nasıl oluşturulur](#boş-bir-dizi-nasıl-oluşturulur)
3 years ago
- [Değerlere sahip bir dizi nasıl oluşturulur](#değerlere-sahip-bir-dizi-nasıl-oluşturulur)
3 years ago
- [split kullanarak dizi oluşturmak](#split-kullanarak-dizi-oluşturmak)
3 years ago
- [index kullanarak dizi elemanlarına ulaşmak](#index-kullanarak-dizi-elemanlarına-ulaşmak)
3 years ago
- [Dizi elemanlarını düzenlemek](#dizi-elemanlarını-düzenlemek)
3 years ago
- [Dizileri manüple edebilecek metotlar](#dizileri-manüple-edebilecek-metotlar)
3 years ago
- [Dizi Constructor'ı ( yapıcı metot )](#dizi-constructor)
3 years ago
- [fill ile statik değerler yaratmak](#fill-ile-statik-değerler-yaratmak)
3 years ago
- [concat kullanarak dizileri birleştirmek](#concat-kullanarak-dizileri-birleştirmek)
3 years ago
- [Dizi uzunluğuna ulaşmak ( length )](#dizi-uzunluğuna-ulaşmak)
3 years ago
- [arr dizisinin içindeki index'e ulaşmak](#arr-dizisinin-içindeki-indexe-ulaşmak)
3 years ago
- [Dizinin içindeki son index'e ulaşmak](#dizinin-içindeki-son-indexe-ulaşmak)
3 years ago
- [Diziyi kontrol etmek](#diziyi-kontrol-etmek)
3 years ago
- [Diziyi string'e çevirmek](#diziyi-stringe-çevirmek)
3 years ago
- [Dizi elemanlarını Joinlemek](#dizi-elemanlarını-joinlemek)
3 years ago
- [Dizi elemanlarını Slice etmek ( kesmek )](#dizi-elemanlarını-slice-etmek)
3 years ago
- [Dizlerde Splice metodu](#dizilerde-splice-metodu)
3 years ago
- [push kullanarak diziye eleman eklemek](#push-kullanarak-diziye-eleman-eklemek)
3 years ago
- [pop kıllanarak diziden eleman çıkarmak](#pop-kullanarak-diziden-eleman-çıkarmak)
3 years ago
- [Dizinin en başından eleman kaldırmak](#dizinin-en-başından-eleman-kaldırmak)
3 years ago
- [Dizinin en başına eleman ekleme](#dizinin-en-başına-eleman-eklemek)
3 years ago
- [Dizi sırasını ters'e çevirmek](#dizi-sırasını-terse-çevirmek)
3 years ago
- [Dizi elemanlarını sıralamak](#dizi-elemanlarını-sıralamak)
3 years ago
- [Dizi içinde Diziler](#dizi-içinde-diziler)
3 years ago
- [💻 Egzersizler](#-Egzersizler)
3 years ago
- [Egzersiz: Seviye 1](#egzersiz-seviye-1)
3 years ago
- [Egzersiz: Seviye 2](#egzersiz-seviye-2)
3 years ago
- [Egzersiz: Seviye 3](#egzersiz-seviye-3)
# 📔 Gün 5
## Diziler
3 years ago
Değişkenlerin aksine, diziler _Çoklu değerleri_ depolayabilirler. Dizi'deki her bir değer _index_'e sahiptir, ve her index _bellek adresindeki bir referans_'ı işaret eder. Bu _index'ler_ kullanılarak her bir değere ulaşım sağlanabilir. Bir dizinin index'i _sıfır_'dan başlar ve dizinin son elemanının index'i, dizinin uzunluğundan bir eksiktir.
3 years ago
Bir dizi, sıralı ve değiştirilebilirdir. Farklı veri türlerinin bir koleksiyonudur. Bir dizi, tekrar edilen elemanların ve farklı veri türlerinin depolanmasına izin verir. Bir dizi boş olabilir veya farklı veri türü değerlerine sahip olabilir.
### Boş bir dizi nasıl oluşturulur
JavaScript'te birçok farklı yol ile dizi oluşturabiliriz. Bir dizi oluşturmanın farklı yollarını görelim.
Bir dizi değişkeni tanımlamak için _let_ yerine _const_ kullanmak çok yaygındır. Const kullanıyorsanız, bu değişken adını bir daha kullanmayacağınız anlamına gelir.
- Array constructor'ı ( yapıcı metot ) kullanmak
```js
// syntax
const arr = Array()
// ya da
// let arr = new Array()
console.log(arr) // []
```
- Köşeli parantez kullanmak([])
```js
// syntax
// Bu boş bir dizi oluşturmak için en çok tavsiye edilen yöntemdir
const arr = []
console.log(arr)
```
### Değerlere sahip bir dizi nasıl oluşturulur
Başlangıç değerine sahip bir dizi. _length_ özelliğini kullanarak dizinin uzuluğunu bulabiliriz.
```js
const numbers = [0, 3.14, 9.81, 37, 98.6, 100] // sayı dizisi
const fruits = ['banana', 'orange', 'mango', 'lemon'] // string dizisi, meyveler
const vegetables = ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] // string dizisi, sebzeler
const animalProducts = ['milk', 'meat', 'butter', 'yoghurt'] // string dizisi, ürünler
const webTechs = ['HTML', 'CSS', 'JS', 'React', 'Redux', 'Node', 'MongDB'] // string dizisi, web teknolojileri
const countries = ['Finland', 'Denmark', 'Sweden', 'Norway', 'Iceland'] // string dizisi, ülkeler
// Diziyi ve dizinin uzunluğunu yazdırmak
console.log('Numbers:', numbers)
console.log('Number of numbers:', numbers.length)
console.log('Fruits:', fruits)
console.log('Number of fruits:', fruits.length)
console.log('Vegetables:', vegetables)
console.log('Number of vegetables:', vegetables.length)
console.log('Animal products:', animalProducts)
console.log('Number of animal products:', animalProducts.length)
console.log('Web technologies:', webTechs)
console.log('Number of web technologies:', webTechs.length)
console.log('Countries:', countries)
console.log('Number of countries:', countries.length)
```
```sh
Numbers: [0, 3.14, 9.81, 37, 98.6, 100]
Number of numbers: 6
Fruits: ['banana', 'orange', 'mango', 'lemon']
Number of fruits: 4
Vegetables: ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']
Number of vegetables: 5
Animal products: ['milk', 'meat', 'butter', 'yoghurt']
Number of animal products: 4
Web technologies: ['HTML', 'CSS', 'JS', 'React', 'Redux', 'Node', 'MongDB']
Number of web technologies: 7
Countries: ['Finland', 'Estonia', 'Denmark', 'Sweden', 'Norway']
Number of countries: 5
```
3 years ago
- Dizinin farklı veri tiplerinde elemanları olabilir.
```js
const arr = [
'Asabeneh',
250,
true,
{ country: 'Finland', city: 'Helsinki' },
{ skills: ['HTML', 'CSS', 'JS', 'React', 'Python'] }
] // arr farklı veri tipleri içerir.
console.log(arr)
```
### Split kullanarak dizi oluşturmak
Önceki bölümde gördüğümüz gibi, bir diziyi farklı şekillerde bölebilir ve diziyi değiştirebiliriz. Aşağıdaki örneklere bir göz atalım.
```js
let js = 'JavaScript'
const charsInJavaScript = js.split('')
console.log(charsInJavaScript) // ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"]
let companiesString = 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon'
const companies = companiesString.split(',')
console.log(companies) // ["Facebook", " Google", " Microsoft", " Apple", " IBM", " Oracle", " Amazon"]
let txt =
'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.'
const words = txt.split(' ')
console.log(words)
// metnin özel karakterleri var, sadece kelimeleri nasıl alabileceğinizi düşünün
// ["I", "love", "teaching", "and", "empowering", "people.", "I", "teach", "HTML,", "CSS,", "JS,", "React,", "Python"]
```
### index kullanarak dizi elemanlarına ulaşmak
Dizide elemanların indexlerini kullanarak o elemana ulaşabiliriz. Dizinin index'i 0'dan başlar. Aşşağıdaki resm her elemanın indexini açıkça göstermektedir.
![arr index](../images/array_index.png)
```js
const fruits = ['banana', 'orange', 'mango', 'lemon']
let firstFruit = fruits[0] // 1. eleman'a o elemanın indexini kullanarak erişiyoruz.
console.log(firstFruit) // banana
secondFruit = fruits[1]
console.log(secondFruit) // orange
let lastFruit = fruits[3]
console.log(lastFruit) // lemon
// Son eleman devam eden örnekteki gibi hesaplanabilir
let lastIndex = fruits.length - 1
lastFruit = fruits[lastIndex]
console.log(lastFruit) // lemon
```
```js
const numbers = [0, 3.14, 9.81, 37, 98.6, 100] // sayı dizisi
console.log(numbers.length) // => dizinin uzunluğunu bilebiliriz. O da 6'dır
console.log(numbers) // -> [0, 3.14, 9.81, 37, 98.6, 100]
console.log(numbers[0]) // -> 0
console.log(numbers[5]) // -> 100
let lastIndex = numbers.length - 1;
console.log(numbers[lastIndex]) // -> 100
```
```js
const webTechs = [
'HTML',
'CSS',
'JavaScript',
'React',
'Redux',
'Node',
'MongoDB'
] // Web teknolojilerinin Listesi
console.log(webTechs) // Dizi elemanlarının hepsi
console.log(webTechs.length) // => dizinin uzunluğunu bilebiliriz. O da 7'dir
console.log(webTechs[0]) // -> HTML
console.log(webTechs[6]) // -> MongoDB
let lastIndex = webTechs.length - 1
console.log(webTechs[lastIndex]) // -> MongoDB
```
```js
const countries = [
'Albania',
'Bolivia',
'Canada',
'Denmark',
'Ethiopia',
'Finland',
'Germany',
'Hungary',
'Ireland',
'Japan',
'Kenya'
] // List of countries
console.log(countries) // -> Dizideki tüm ülkeler
console.log(countries[0]) // -> Albania
console.log(countries[10]) // -> Kenya
let lastIndex = countries.length - 1;
console.log(countries[lastIndex]) // -> Kenya
```
```js
const shoppingCart = [
'Milk',
'Mango',
'Tomato',
'Potato',
'Avocado',
'Meat',
'Eggs',
'Sugar'
] // Ürünler listesi
console.log(shoppingCart) // -> shoppingCart Dizisi elemanlarının hepsi
console.log(shoppingCart[0]) // -> Milk
console.log(shoppingCart[7]) // -> Sugar
let lastIndex = shoppingCart.length - 1;
console.log(shoppingCart[lastIndex]) // -> Sugar
```
### Dizi elemanlarını düzenlemek
Bir dizi değiştirilebilir. Dizi yaratıldıktan sonra, elemanların içeriklerini değiştirebilir, modifiye edebiliriz.
```js
const numbers = [1, 2, 3, 4, 5]
numbers[0] = 10 // index 0'daki 1 elemanını 10 elemanı olarak değiştirdik
numbers[1] = 20 // index 2'deki 2 elemanını 20 elemanı olarak değiştirdik
console.log(numbers) // [10, 20, 3, 4, 5]
const countries = [
'Albania',
'Bolivia',
'Canada',
'Denmark',
'Ethiopia',
'Finland',
'Germany',
'Hungary',
'Ireland',
'Japan',
'Kenya'
]
countries[0] = 'Afghanistan' // Albania yerini Afghanistan aldı
let lastIndex = countries.length - 1
countries[lastIndex] = 'Korea' // Kenya yerini Korea aldı
console.log(countries)
```
```sh
["Afghanistan", "Bolivia", "Canada", "Denmark", "Ethiopia", "Finland", "Germany", "Hungary", "Ireland", "Japan", "Korea"]
```
### Dizileri manüple edebilecek metotlar
Diziyi manüple edebilmek için farklı metotlar vardır. Bunlar dizilerle uğraşmak için kullanışlı yöntemlerden bazılarıdır. Bu yöntemler: _Array, length, concat, indexOf, slice, splice, join, toString, includes, lastIndexOf, isArray, fill, push, pop, shift, unshift_
#### Dizi Constructor
Array:Bir dizi yaratmak için kullanılır.
```js
const arr = Array() // boş bir dizi yaratır
console.log(arr)
const eightEmptyValues = Array(8) // sekiz tane boş değer yaratır
console.log(eightEmptyValues) // [empty x 8]
```
#### fill ile statik değerler yaratmak
fill: Bütün dizi elemanlarını statik değerle doldurur.
```js
const arr = Array() // Boş bir dizi yaratır
console.log(arr)
const eightXvalues = Array(8).fill('X') // 'X'değerine sahip 8 tane eleman oluşuturur.
console.log(eightXvalues) // ['X', 'X','X','X','X','X','X','X']
const eight0values = Array(8).fill(0) // '0' değerine sahip 8 tane eleman oluşturur.
console.log(eight0values) // [0, 0, 0, 0, 0, 0, 0, 0]
const four4values = Array(4).fill(4) //'4' değerine sahip 8 tane eleman oluşturur.
console.log(four4values) // [4, 4, 4, 4]
```
#### Concat kullanarak dizileri birleştirmek
concat: İki diziyi birbiri ile birleştirir.
// Çevirmen notu : concat sadece iki diziyi birleştirmez. ikiden fazla sayıda diziyi birleştirmenize izin verir.
```js
const firstList = [1, 2, 3]
const secondList = [4, 5, 6]
const thirdList = firstList.concat(secondList)
console.log(thirdList) // [1, 2, 3, 4, 5, 6]
```
```js
const fruits = ['banana', 'orange', 'mango', 'lemon'] // meyveler dizisi
const vegetables = ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot'] // sebzeler dizisi
const fruitsAndVegetables = fruits.concat(vegetables) // iki diziyi birleştirdik
console.log(fruitsAndVegetables)
```
```sh
["banana", "orange", "mango", "lemon", "Tomato", "Potato", "Cabbage", "Onion", "Carrot"]
```
#### Dizi uzunluğuna ulaşmak
Length:Dizi uzunluğunu bildirir.
```js
const numbers = [1, 2, 3, 4, 5]
console.log(numbers.length) // -> Dizinin uzunluğu 5'tir
```
#### Arr dizisinin içindeki indexe ulaşmak
indexOf: O elemanın dizide olup olmadığını kontrol eder.Eğer o eleman dizide mevcutsa index numarasını, mevcut değilse -1 döner.
```js
const numbers = [1, 2, 3, 4, 5]
console.log(numbers.indexOf(5)) // -> 4
console.log(numbers.indexOf(0)) // -> -1
console.log(numbers.indexOf(1)) // -> 0
console.log(numbers.indexOf(6)) // -> -1
```
Bir dizide mevcut olup olmadığını kontrol edin.
3 years ago
- Listedeki elemanları kontrol edin.
```js
// dizide bir banana olup olmadığını kontrol edelim
const fruits = ['banana', 'orange', 'mango', 'lemon']
let index = fruits.indexOf('banana') // 0
if(index === -1){
console.log('This fruit does not exist in the array')
} else {
console.log('This fruit does exist in the array')
}
// This fruit does exist in the array
// Burada ayrıca kısa if kullanabilirz.
index === -1 ? console.log('This fruit does not exist in the array'): console.log('This fruit does exist in the array')
// dizide bir avocado olup olmadığını kontrol edelim
let indexOfAvocado = fruits.indexOf('avocado') // -1, eğer eleman dizide yoksa -1 döner
if(indexOfAvocado === -1){
console.log('This fruit does not exist in the array')
} else {
console.log('This fruit does exist in the array')
}
// This fruit does not exist in the array
```
#### Dizinin içindeki son indexe ulaşmak
3 years ago
lastIndexOf: Dizideki son elemanın pozisyonunu verir. Eğer mevcutsa o elemanın index numarasını döner, mevcut değilse -1 döner.
```js
const numbers = [1, 2, 3, 4, 5, 3, 1, 2]
console.log(numbers.lastIndexOf(2)) // 7
console.log(numbers.lastIndexOf(0)) // -1
console.log(numbers.lastIndexOf(1)) // 6
console.log(numbers.lastIndexOf(4)) // 3
console.log(numbers.lastIndexOf(6)) // -1
```
includes:Bir dizide bir öğenin olup olmadığını kontrol etmek için kullanılır.Mevcut ise, true değerini döndürür, aksi takdirde false değerini döndürür.
```js
const numbers = [1, 2, 3, 4, 5]
console.log(numbers.includes(5)) // true
console.log(numbers.includes(0)) // false
console.log(numbers.includes(1)) // true
console.log(numbers.includes(6)) // false
const webTechs = [
'HTML',
'CSS',
'JavaScript',
'React',
'Redux',
'Node',
'MongoDB'
] // Web teknolojileri dizisi
console.log(webTechs.includes('Node')) // true
console.log(webTechs.includes('C')) // false
```
#### Diziyi kontrol etmek
Array.isArray: Veri tipinin bir dizi olup olmadığını kontrol etmek için kullanılır.
```js
const numbers = [1, 2, 3, 4, 5]
console.log(Array.isArray(numbers)) // true
const number = 100
console.log(Array.isArray(number)) // false
```
#### Diziyi stringe çevirmek
toString:Diziyi string bir ifadeye çevirir.
```js
const numbers = [1, 2, 3, 4, 5]
console.log(numbers.toString()) // 1,2,3,4,5
const names = ['Asabeneh', 'Mathias', 'Elias', 'Brook']
console.log(names.toString()) // Asabeneh,Mathias,Elias,Brook
```
#### Dizi elemanlarını Joinlemek
join: Dizinin elemanlarını birleştirmek için kullanılır, join yönteminde ilettiğimiz argüman dizide birleştirilir ve bir dizi olarak döndürülür. Varsayılan olarak bir virgül ile birleşir, ancak elemanlar arasında birleştirilebilecek farklı dizi parametreleri iletebiliriz.
```js
const numbers = [1, 2, 3, 4, 5]
console.log(numbers.join()) // 1,2,3,4,5
const names = ['Asabeneh', 'Mathias', 'Elias', 'Brook']
console.log(names.join()) // Asabeneh,Mathias,Elias,Brook
console.log(names.join('')) //AsabenehMathiasEliasBrook
console.log(names.join(' ')) //Asabeneh Mathias Elias Brook
console.log(names.join(', ')) //Asabeneh, Mathias, Elias, Brook
console.log(names.join(' # ')) //Asabeneh # Mathias # Elias # Brook
const webTechs = [
'HTML',
'CSS',
'JavaScript',
'React',
'Redux',
'Node',
'MongoDB'
] // List of web technologies
console.log(webTechs.join()) // "HTML,CSS,JavaScript,React,Redux,Node,MongoDB"
console.log(webTechs.join(' # ')) // "HTML # CSS # JavaScript # React # Redux # Node # MongoDB"
```
#### Dizi elemanlarını slice etmek
3 years ago
Slice: Bir aralıktaki çoklu elemanları dilimler İki parametre alır. Bu parametreler, başlangıç ve bitiş konumlarıdır. Bitiş konumunu dahil etmez.
```js
const numbers = [1,2,3,4,5]
console.log(numbers.slice()) // -> Bütün öğeyi kopyalar
console.log(numbers.slice(0)) // -> Bütün öğeyi kopyalar
console.log(numbers.slice(0, numbers.length)) // Bütün öğeyi kopyalar
console.log(numbers.slice(1,4)) // -> [2,3,4] // son elemanı dahil etmez
```
#### Dizilerde splice metodu
Splice: üç parametre alır :başlangıç konumu, kaldırılması gereken eleman sayısı ve eklenmesi gereken eleman sayısı.
```js
const numbers = [1, 2, 3, 4, 5]
numbers.splice()
console.log(numbers) // -> Bütün elemanları kaldırır
```
```js
const numbers = [1, 2, 3, 4, 5]
numbers.splice(0,1)
console.log(numbers) // ilk elemanı kaldırır
```
```js
const numbers = [1, 2, 3, 4, 5, 6]
numbers.splice(3, 3, 7, 8, 9)
console.log(numbers.splice(3, 3, 7, 8, 9)) // -> [1, 2, 3, 7, 8, 9] //2 eleman kaldırdı ve yerine 3 eleman ekledi
```
#### Push kullanarak diziye eleman eklemek
3 years ago
Push: Dizinin sonuna eleman ekler.Varolan bir diziye eleman eklemek için push metodunu kullanırız.
```js
// syntax
const arr = ['item1', 'item2','item3']
arr.push('new item')
console.log(arr)
// ['item1', 'item2','item3','new item']
```
```js
const numbers = [1, 2, 3, 4, 5]
numbers.push(6)
console.log(numbers) // -> [1,2,3,4,5,6]
numbers.pop() // -> Dizinin sonundan bir eleman çıkarır.
console.log(numbers) // -> [1,2,3,4,5]
```
```js
let fruits = ['banana', 'orange', 'mango', 'lemon']
fruits.push('apple')
console.log(fruits) // ['banana', 'orange', 'mango', 'lemon', 'apple']
fruits.push('lime')
console.log(fruits) // ['banana', 'orange', 'mango', 'lemon', 'apple', 'lime']
```
#### pop kıllanarak diziden eleman çıkarmak
3 years ago
pop: Dizinin sonundaki elemanı siler.
```js
const numbers = [1, 2, 3, 4, 5]
numbers.pop() // -> Sondaki elemanı siler
console.log(numbers) // -> [1,2,3,4]
```
#### Dizinin en başından eleman kaldırmak
shift: Dizinin en başındaki elemanı siler.
```js
const numbers = [1, 2, 3, 4, 5]
numbers.shift() // -> baştan bir elemanı kaldırır.
console.log(numbers) // -> [2,3,4,5]
```
#### Dizinin en başına eleman eklemek
3 years ago
unshift: Dizinin başına dizi elemanı ekler.
```js
const numbers = [1, 2, 3, 4, 5]
numbers.unshift(0) // -> en başa eleman ekler
console.log(numbers) // -> [0,1,2,3,4,5]
```
#### Dizi sırasını terse çevirmek
reverse: Dizi sıralamasını terse çevirir.
```js
const numbers = [1, 2, 3, 4, 5]
numbers.reverse() // -> ters dizi sırası
console.log(numbers) // [5, 4, 3, 2, 1]
numbers.reverse()
console.log(numbers) // [1, 2, 3, 4, 5]
```
#### Dizi elemanlarını sıralamak
sort: Dizi elemanlarını alfabetik sırada düzenleyin.Sort call back fonksyonu alır, sort'un call back fonksiyonu ile nasıl kullandığımızı ilerleyen bölümlerde göreceğiz.
```js
const webTechs = [
'HTML',
'CSS',
'JavaScript',
'React',
'Redux',
'Node',
'MongoDB'
]
webTechs.sort()
console.log(webTechs) // ["CSS", "HTML", "JavaScript", "MongoDB", "Node", "React", "Redux"]
webTechs.reverse() // sortladıktan sonra reverse edebiliriz.
console.log(webTechs) // ["Redux", "React", "Node", "MongoDB", "JavaScript", "HTML", "CSS"]
```
### Dizi içinde diziler
3 years ago
Diziler farklı veri tiplerinde elemanları ve yeni bir dizi de depolayabilirler Şimdi dizi içinde bir dizi tanımlayalım.
```js
const firstNums = [1, 2, 3]
const secondNums = [1, 4, 9]
const arrayOfArray = [[1, 2, 3], [1, 2, 3]]
console.log(arrayOfArray[0]) // [1, 2, 3]
const frontEnd = ['HTML', 'CSS', 'JS', 'React', 'Redux']
const backEnd = ['Node','Express', 'MongoDB']
const fullStack = [frontEnd, backEnd]
console.log(fullStack) // [["HTML", "CSS", "JS", "React", "Redux"], ["Node", "Express", "MongoDB"]]
console.log(fullStack.length) // 2
console.log(fullStack[0]) // ["HTML", "CSS", "JS", "React", "Redux"]
console.log(fullStack[1]) // ["Node", "Express", "MongoDB"]
```
🌕 Çalışkansınız ve zaten çok şey başardınız. 5. gün zorluklarını yeni tamamladınız ve mükemmelliğe giden yolda 5 adım öndesiniz. Şimdi beyniniz ve kasınız için bazı egzersizler yapın.
## 💻 Egzersizler
### Egzersiz: Seviye 1
```js
const countries = [
'Albania',
'Bolivia',
'Canada',
'Denmark',
'Ethiopia',
'Finland',
'Germany',
'Hungary',
'Ireland',
'Japan',
'Kenya'
]
const webTechs = [
'HTML',
'CSS',
'JavaScript',
'React',
'Redux',
'Node',
'MongoDB'
]
```
1. _boş_ bir dizi yaratın;
3 years ago
2. Eleman sayısı 5'ten fazla olan bir dizi yaratın.
3 years ago
3. Yarattığınız dizinin uzunluğunu bulun ( length ).
3 years ago
4. Dizinizdeki ilk elemanı, ortadaki elemanı ve sondaki elemanı bulun.
5. _mixedDataTypes_ adında bir dizi yaratın,dizinin içine farklı veri tiplerinde elemanlar koyun ve bu dizinin uzunluğunu bulun. Dizinin uzunluğu 5'ten büyük olmalıdır.
3 years ago
6. ItCompanies adlı bir dizi değişkeni oluşturun ve Facebook, Google, Microsoft, Apple, IBM, Oracle ve Amazon'a başlangıç değerleri atayın.
3 years ago
7. _console.log()_ kullanarak dizinizi yazdırın.
3 years ago
8. Dizinin içindeki şirketlerin sayısın yazdırın.
3 years ago
9. Dizinin içindeki ilk, ortadaki ve son elemanı yazdırın.
3 years ago
10. Dizideki her şirketi yazdırın.
11. Her bir şirketin adını tek tek büyük harfleri ile değişterin ( ör: facebook -> FACEBOOK) ve her birini yazdırın.
12. Diziyi bir cümle gibi yazdırın: Facebook, Google, Microsoft, Apple, IBM,Oracle and Amazon are big IT companies.
13. itCompanies dizisinde belirli bir şirketin olup olmadığını kontrol edin. Varsa şirketi geri döndürün, aksi takdirde _not found_ geri döndürün.
3 years ago
14. Birden fazla 'o' harfi içeren şirketleri filter metodunu kullanmadan filtreleyin.
3 years ago
15. _sort()_ metodunu kullanarak diziyi sıralayın.
3 years ago
16. _reverse()_ metodunu kullanarak diziyi tersine çevirin.
3 years ago
17. Diziden ilk 3 şirketi dilimleyin ( Slice edin ).
3 years ago
18. Diziden son 3 şirketi dilimleyin ( Slice edin ).
3 years ago
19. Ortadaki IT şirketini ya da şirketlerini diziden dilimleyin ( Slice edin ).
3 years ago
20. İlk IT şirketini diziden kaldırın.
3 years ago
21. Ortadaki IT şirketini ya da şirketlerini diziden kaldırın.
3 years ago
22. Sondaki IT şirketini diziden kaldırın.
3 years ago
23. Bütün IT şirketlerini kaldırın.
### Egzersiz: Seviye 2
1.Ayrı bir country.js dosyası oluşturun ve country dizisini bu dosyaya kaydedin, ayrı bir web_techs.js dosyası oluşturun ve webTechs dizisini bu dosyaya kaydedin. Daha sonra Main.js dosyasından her iki dosyaya da erişim sağlayın.
3 years ago
1. Önce bütün noktalama işaretlerini kaldırın ve ve string ifadeyi dizi olarak değiştirin ve dizideki kelime sayısını sayın.
```js
let text =
'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.'
console.log(words)
console.log(words.length)
```
```sh
["I", "love", "teaching", "and", "empowering", "people", "I", "teach", "HTML", "CSS", "JS", "React", "Python"]
13
```
1. Aşşağıdaki alışveriş sepetindeki elemanları ekleyin, silin , düzenleyin.
```js
const shoppingCart = ['Milk', 'Coffee', 'Tea', 'Honey']
```
- Eğer alışveriş sepetine zaten 'Meat' eklenmemişse en başa ekleyin.
- Eğer alışveriş sepetine zaten 'Sugar' eklenmemişse en sona ekleyin.
3 years ago
- Eğer bala alerjiniz varsa 'Honey' elemanını diziden silin.
3 years ago
- 'Tea' elemanını 'Green Tea' olarak güncelleyin.
1. countries dizisinde 'Ethiopia' olup olmadığını kontrol edin. Eğer varsa 'ETHIOPIA' yazdırın. eğer yoksa bunu countries dizisine ekleyin.
2. webTechs dizisinde Sass olup olmadığını kontrol edin eğer varsa 'Sass is a CSS preprocess' yazdırın. Eğer yoksa diziye Sass elemanını ekleyip diziyi yazdırın
4. Aşağıdaki iki değişkeni birleştirin ve bir fullStack değişkeninde atayın.
```js
const frontEnd = ['HTML', 'CSS', 'JS', 'React', 'Redux']
const backEnd = ['Node','Express', 'MongoDB']
console.log(fullStack)
```
```sh
["HTML", "CSS", "JS", "React", "Redux", "Node", "Express", "MongoDB"]
```
### Egzersiz: Seviye 3
1. Aşağıdaki dizide 10 öğrencinin yaşı vardır:
```js
const ages = [19, 22, 19, 24, 20, 25, 26, 24, 25, 24]
```
- Diziyi sıralayın ve en küçük ve en büyük yaşı bulun
- Medyan yaşı bulun(dizinin ortasındaki eleman ama ortada iki eleman varsa elemanlar ikiye bölünür)
- Ortalama yaşı bulun(tüm elemanlar eleman sayısına bölünür)
- Yaş aralığını bulun (maks - min)
3 years ago
- _abs()_ metodunu kullanarak (min - ortalama) ve (maks - ortalama) değerlerini karşılaştırın,
1. [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) dizisinden ilk 10 ülkeyi dilimleyin ( Slice edin )
1. [countries array](https://github.com/Asabeneh/30DaysOfJavaScript/tree/master/data/countries.js) dizisinden ortadaki ülkeleri bulun.
2. countries dizisini çift ise iki eşit diziye bölün. countries dizisi çift değilse, ilk yarı için bir ülke fazla olarak bölün
🎉 TEBRİKLER ! 🎉
[<< Gün 4](../04_Day_Conditionals/04_day_Conditionals.md) | [Gün 6 >>](../06_Day_Loops/06_day_loops.md)