30 Günde JavaScript: Loops - Döngüler

Twitter Follow Author: Asabeneh Yetayeh
Çevirmen: Güven Karabulut
Kasım 2022

Day 9 >> Day 11

Day 6

# Gün 10

## Set

Set, elemanlar topluluğudur. Set yalnızca benzersiz öğeler içerebilir. Aşağıdaki bölümde bir setin nasıl oluşturulacağını görelim.

### Boş bir set oluşturma

const companies = new Set()
console.log(companies)
Set(0) {}

### Diziden set oluşturma

const languages = [
  'English',
  'Finnish',
  'English',
  'French',
  'Spanish',
  'English',
  'French',
]

const setOfLanguages = new Set(languages)
console.log(setOfLanguages)
Set(4) {English, Finnish, French, Spanish}

Set iterable bir nesnedir ve her öğeye iterable işlemi uygulanabilir

const languages = [
  'English',
  'Finnish',
  'English',
  'French',
  'Spanish',
  'English',
  'French',
]

const setOfLanguages = new Set(languages)

for (const language of setOfLanguages) {
  console.log(language)
}
  English
  Finnish
  French
  Spanish

### Bir set'e eleman ekleme

const companies = new Set()  boş bir set oluşturuyoruz
console.log(companies.size)  0

companies.add('Google')  set'e eleman ekliyoruz
companies.add('Facebook')
companies.add('Amazon')
companies.add('Oracle')
companies.add('Microsoft')
console.log(companies.size)  set'in içinde 5 eleman var
console.log(companies)
Set(5) {Google, Facebook, Amazon, Oracle, Microsoft}

Bir set'e eleman eklemek için döngülerde kullanabiliriz.

const companies = ['Google', 'Facebook', 'Amazon', 'Oracle', 'Microsoft']
setOfCompanies = new Set()
for (const company of companies) {
  setOfCompanies.add(company)
}
Set(5) {Google, Facebook, Amazon, Oracle, Microsoft}

### Bir elemanı set'den silme

Set'den delete methodunu kullanrak bir eleman silebiliriz.

console.log(companies.delete('Google'))
console.log(companies.size)  Set'de 4 eleman kaldı

### Set'deki bir elemanı kontrol etme

Has methodu bir set'de belirli bir elemanı olup olmadığını kontrol eder true veya false döndürür.

console.log(companies.has('Apple'))  false
console.log(companies.has('Facebook'))  true

### Set'i temizleme

Clear methodu set'deki bütün elemanları temizler.

companies.clear()
console.log(companies)
Set(0) {}

Set'in nasıl kullanılacağını aşağıdaki örnekte görebilirsiniz.

const languages = [
  'English',
  'Finnish',
  'English',
  'French',
  'Spanish',
  'English',
  'French',
]
const langSet = new Set(languages)
console.log(langSet)  Set(4) {English, Finnish, French, Spanish}
console.log(langSet.size)  4

const counts = []
const count = {}

for (const l of langSet) {
  const filteredLang = languages.filter((lng) = lng === l)
  console.log(filteredLang)  [English, English, English]
  counts.push({ lang l, count filteredLang.length })
}
console.log(counts)
[
  { lang 'English', count 3 },
  { lang 'Finnish', count 1 },
  { lang 'French', count 2 },
  { lang 'Spanish', count 1 },
]

Set'in farklı bir kullanımı. Örneğin dizideki benzersiz öğeyi saymak için.

const numbers = [5, 3, 2, 5, 5, 9, 4, 5]
const setOfNumbers = new Set(numbers)

console.log(setOfNumbers)
Set(5) {5, 3, 2, 9, 4}

### Set'lerin birleşimi

iki set nesnesini birleştirmek yayılma operatörü kullanılarak elde edilebilir A ve B set'lerinin birleşimini (A U B) bulmak için aşağıdaki kodlara göz atın

let a = [1, 2, 3, 4, 5]
let b = [3, 4, 5, 6]
let c = [...a, ...b]

let A = new Set(a)
let B = new Set(b)
let C = new Set(c)

console.log(C)
Set(6) {1, 2, 3, 4, 5,6}

### Set'lerin kesişimi

iki set nesnesinin kesişimini bulmak için filter methodu kullanılması gerekir. A ve B setlerinin kesişimi (A ∩ B) bulmak için aşağıdaki kodlara göz atın

let a = [1, 2, 3, 4, 5]
let b = [3, 4, 5, 6]

let A = new Set(a)
let B = new Set(b)

let c = a.filter((num) = B.has(num))
let C = new Set(c)

console.log(C)
Set(3) {3, 4, 5}

### Set'lerin farkı

iki set nesnesinin farkını bulmak için filter methodu kullanılması gerekir. A ve B setlerinin farkını (A B) bulmak için aşağıdaki kodlara göz atın

let a = [1, 2, 3, 4, 5]
let b = [3, 4, 5, 6]

let A = new Set(a)
let B = new Set(b)

let c = a.filter((num) = !B.has(num))
let C = new Set(c)

console.log(C)
Set(2) {1, 2}

## Map

### Boş map oluşturma

const map = new Map()
console.log(map)
Map(0) {}

### Bir diziden map oluşturma

countries = [
  ['Finland', 'Helsinki'],
  ['Sweden', 'Stockholm'],
  ['Norway', 'Oslo'],
]
const map = new Map(countries)
console.log(map)
console.log(map.size)
Map(3) {Finland = Helsinki, Sweden = Stockholm, Norway = Oslo}
3

### Map'e değerler ekleme

const countriesMap = new Map()
console.log(countriesMap.size)  0
countriesMap.set('Finland', 'Helsinki')
countriesMap.set('Sweden', 'Stockholm')
countriesMap.set('Norway', 'Oslo')
console.log(countriesMap)
console.log(countriesMap.size)
Map(3) {Finland = Helsinki, Sweden = Stockholm, Norway = Oslo}
3

### Map'ten değer alma

console.log(countriesMap.get('Finland'))
Helsinki

### Map içindeki anahtarı kontrol etme

Eğer Map içinde bir anahtarın olup olmadığını kontrol etmek istiyorsak has methodunu kullanabiliriz bu method bize true veya false döndürür.

console.log(countriesMap.has('Finland'))
true

Map içindeki bütün değerleri döngü kullanarak almak

for (const country of countriesMap) {
  console.log(country)
}
(2) [Finland, Helsinki]
(2) [Sweden, Stockholm]
(2) [Norway, Oslo]
for (const [country, city] of countriesMap){
 console.log(country, city)
}
Finland Helsinki
Sweden Stockholm
Norway Oslo

🌕 Büyük bir ilerleme kateddiniz, durdurulamazsınız. Devam edin! 10.gün zorluklarını yeni tamamladınız ve mükemmeliğe giden yolda 10 adım öndesiniz. Şimdi beyniniz ve kaslarınız için bazı egzersizler yapın.

## Egzersiz

### Egzersiz:Seviye 1

const a = [4, 5, 8, 9]
const b = [3, 4, 5, 7]
const countries = ['Finland', 'Sweden', 'Norway']

1.Boş bir set oluşturun 2.Döngü kullanarak 0 ile 10 aralığını içeren bir set oluşturun 3.Set içinden bir eleman silin 4.Set'i temizleyin 5.5 string eleman içeren bir set oluşturun (dizi ile oluşturulacak) 6. bir ülke map'ı oluşturun ve içindeki ülkelerin karakter sayısını girin

### Egzersiz:Seviye 2

1.A birleşim B'yi bulun 2.A kesişim B'yi bulun 3. A ile B'yi bul

### Egzersiz:Seviye 3

1.Ülkeler nesne dosyasında kaç tane dil var

  1. En çok konuşulan 10 dili bulmak için ülke verilerini kullanın
    Çıktınız böyle görünmelidir
   console.log(mostSpokenLanguages(countries, 10))
   [
     { English 91 },
     { French 45 },
     { Arabic 25 },
     { Spanish 24 },
     { Russian 9 },
     { Portuguese 9 },
     { Dutch 8 },
     { German 7 },
     { Chinese 5 },
     { Swahili 4 },
     { Serbian 4 }
   ]

   Çıktınız böyle görünmelidir
  console.log(mostSpokenLanguages(countries, 3))
  [
  {English91},
  {French45},
  {Arabic25}
  ]

🎉 TEBRİKLER ! 🎉

Day 9 >> Day 11