Categories: JavaScript

JavaScript Dizileri için 13 İpucu

Yazının orijinaline ulaşmak için buraya tıklayabilirsiniz.

1. Tekrar Edenlerin Temizlenmesi

Popüler mülakat sorularından bir tanesi: “Dizinin içinden benzersiz değerleri nasıl ayıklarsınız?” Bunun için basit ve hızlı bir çözüm var;

var fruits = [“banana”, “apple”, “orange”, “watermelon”, “apple”, “orange”, “grape”, “apple”];


// İlk yöntem
var uniqueFruits = Array.from(new Set(fruits));

console.log(uniqueFruits);
// [“banana”, “apple”, “orange”, “watermelon”, “grape”]

// İkinci yöntem
var uniqueFruits2 = […new Set(fruits)];

console.log(uniqueFruits2); 
// [“banana”, “apple”, “orange”, “watermelon”, “grape”]

2. Belirli Bir Değerin Değiştirilmesi

Bazen, dizi içindeki belirli değerleri değiştirmek isteyebiliriz. Bunun için bir metodumuz var:splice(başlangıç, değiştirilecek değer sayısı, eklenecek değerler)

var fruits = [“banana”, “apple”, “orange”, “watermelon”, “apple”, “orange”, “grape”, “apple”];

fruits.splice(0, 2, “potato”, “tomato”);

console.log(fruits); 
// [“potato”, “tomato”, “orange”, “watermelon”, “apple”, “orange”, “grape”, “apple”]

3. map() Kullanmadan “map”

Array.from() metodunu da aynı amaçla kullanabilirsiniz;

var friends = [
    { name: ‘John’, age: 22 },
    { name: ‘Peter’, age: 23 },
    { name: ‘Mark’, age: 24 },
    { name: ‘Maria’, age: 22 },
    { name: ‘Monica’, age: 21 },
    { name: ‘Martha’, age: 19 },
]


var friendsNames = Array.from(friends, ({name}) => name);

console.log(friendsNames);
// [“John”, “Peter”, “Mark”, “Maria”, “Monica”, “Martha”]

4. Diziyi Boşaltmak

Bir diziyi temizlemek istiyorsunuz ama elemanları teker teker kaldırmak istemiyor musunuz? Bir diziyi boşaltmak için, dizinin uzunluğunu sıfır yapabilirsiniz;

var fruits = [“banana”, “apple”, “orange”, “watermelon”, “apple”, “orange”, “grape”, “apple”];


fruits.length = 0;

console.log(fruits); // []

5. Diziyi Objeye Dönüştürmek

Bazen bir diziyi, objeye dönüştürmek isteyebilirsiniz. Bunun için en hızlı yollardan birisi “spread operator (...)” kullanmak;

var fruits = [“banana”, “apple”, “orange”, “watermelon”];
var fruitsObj = { …fruits };

console.log(fruitsObj);
// {0: “banana”, 1: “apple”, 2: “orange”, 3: “watermelon”, 4: “apple”, 5: “orange”, 6: “grape”, 7: “apple”}

6. Diziyi Data İle Doldurmak

Datayla beraber bir dizi oluşturmak isterseniz, fill() metodu kolay ve temiz bir çözüm sunuyor;

var newArray = new Array(10).fill(“1”);

console.log(newArray);
// [“1”, “1”, “1”, “1”, “1”, “1”, “1”, “1”, “1”, “1”, “1”]

7. Dizileri Birleştirme

concat() kullanmadan birçok diziyi tek bir diziye dönüştürmeyi biliyor musunuz? Tek satırlık kod ile birçok diziyi tek bir diziye çevirebiliriz. Çoktan fark ettiğiniz üzere, “spread operator” diziler ile çalışırken oldukça kullanışlı.

var fruits = [“apple”, “banana”, “orange”];
var meat = [“poultry”, “beef”, “fish”];
var vegetables = [“potato”, “tomato”, “cucumber”];
var food = […fruits, …meat, …vegetables];

console.log(food); 
// [“apple”, “banana”, “orange”, “poultry”, “beef”, “fish”, “potato”, “tomato”, “cucumber”]

8. İki Dizinin Kesişimini Bulma

Popüler mülakat sorularından bir tanesi daha. Kesişimleri bulmak için, önceki ipuçlarında kullandığımız birkaç metodu kullanacağız. Test ettiğimiz dizi içinde tekrar eden eleman olmadığından emin olmamız lazım, ve filter() ve includes() metodlarını kullanarak iki dizide de olan elemanları elde edeceğiz;

var numOne = [0, 2, 4, 6, 8, 8];
var numTwo = [1, 2, 3, 4, 5, 6];
var duplicatedValues = […new Set(numOne)].filter(item => numTwo.includes(item));

console.log(duplicatedValues);
// [2, 4, 6]

9. “Yanlış-sal” (falsy) Değerlerin Temizlenmesi

Önce “yanlış-sal”ın, “falsy”, ne olduğunu tanımlayalım: JavaScript için “falsy” değerler, 0, '', null, NaN, undefined. Şimdi bu değerlerden nasıl kurtulabileceğimizi görelim;

var mixedArr = [0, “blue”, “”, NaN, 9, true, undefined, “white”, false];
var trueArr = mixedArr.filter(Boolean);

console.log(trueArr);
// [“blue”, 9, true, “white”]

10. Dizi İçinden Rastgele Eleman Alma

Dizinin uzunluğuna bağlı olarak rastgele bir eleman almanın basit, hızlı, kısa ve temiz bir çözümü var;

var colors = [“blue”, “white”, “green”, “navy”, “pink”, “purple”, “orange”, “yellow”, “black”, “brown”];
var randomColor = colors[(Math.floor(Math.random() * (colors.length)))]

11. Diziyi Tersine Çevirmek

Bir diziyi tersine çevirmek için, karmaşık döngü ve fonksiyonlara ihtiyacınız yok. Bunun için hazır bir metot var;

var colors = [“blue”, “white”, “green”, “navy”, “pink”, “purple”, “orange”, “yellow”, “black”, “brown”];
var reversedColors = colors.reverse();

console.log(reversedColors);
// [“brown”, “black”, “yellow”, “orange”, “purple”, “pink”, “navy”, “green”, “white”, “blue”]

12. lastIndexOf()

JavaScript, istediğiniz elemanın bulunduğu son indeksi elde etmenizi sağlayacak bir metoda sahip. Örneğin, dizimiz tekrar eden verilere sahip ve elemanın dizideki son indeksini bulmak istiyoruz. Kod örneğine bakalım;

var nums = [1, 5, 2, 6, 3, 5, 2, 3, 6, 5, 2, 7];
var lastIndex = nums.lastIndexOf(5);

console.log(lastIndex); // 9

13. Dizideki Değerlerin Toplamı

JavaScript mülakatlarının başka bir sorusu daha… Korkacak bir şey yok çünkü reduce() metodu ile tek satırda çözülebilir;

var nums = [1, 5, 2, 6];
var sum = nums.reduce((x, y) => x + y);

console.log(sum); // 14
Share
Published by
yusufkaracin

Recent Posts

Celery Checklist [Python]

Celery ile alakalı "best practice"leri ve faydalı araçları bir araya getiren güzel bir checklist'e denk…

5 yıl ago

List & Tuple Mini Test (Python)

listve tuple bilginizi test etmek ister misiniz? realpython.com da keşfettiğim ve Türkçe'ye çevirdiğim mini teste…

5 yıl ago

Bilmeniz Gereken 11 Python Mülakat Sorusu

Rehberlik sağlaması ve bilgi tazelemesi açısından faydalı olduğunu düşündüğüm bir Toptal blog paylaşımınıTürkçe'ye çevirdim.Devamını okuyunBilmeniz…

5 yıl ago

Angular Componentlere Konsol Üzerinden Hızlı Erişim

Angular componentlerine console üzerinden hızlıca erişmek için kullanılan bir teknik. Unutmamak için kendime not düşüyorum.Devamını…

5 yıl ago

Birkaç Güzel JavaScript Sorusu İster Miydiniz?

Geçtiğimiz günlerde keşfettiğim ve oldukça da hoşuma giden repoyu paylaşmak istiyorum: lydiahallie/javascript-questions Genel olarak temel…

5 yıl ago

JavaScript için Temiz ve Okunabilir Kod Yazmak

Temiz ve okunabilir kod... Yeşillikler arasında yürümek, en sevdiğiniz kahvenin kokusunu içinize çekmek ya da…

5 yıl ago