JavaSript dilinde diziler ile çalışırken dizi içindeki bir özelliğe göre dizi içinde arama yapmak isteyebiliriz. Aşağıdaki örneği inceleyerek siz de kendi fonksiyonunuzu yazabilirsiniz.
Elimizde aşağıdaki gibi bir dizi olduğunu düşünün. Dizi tanımlaması AngularJS kullandığım için aşağıdaki gibi tanımladım. Eğer bu frameworku kullanmıyorsanız normal javascript değişken tanımlama veya kendi frameworkünüze göre tanımlayın. Eğer değişkeni JSON objesi olarak tanımladıysanız aynı işlemleri yapabilirsiniz.
scope.KlasorListesi=[
{
KlasorId: 1,
KlasorAdi: "Deneme",
UstKlasorId: 1,
Seviye: 1,
},
{
KlasorId: 2,
KlasorAdi: "Deneme",
UstKlasorId: 1,
Seviye: 102
},
{
KlasorId: 3,
KlasorAdi: "Test",
UstKlasorId: 1,
Seviye: 5
},
{
KlasorId: 3,
KlasorAdi: "Test",
UstKlasorId: 1,
Seviye: 3
}
];
Değişkeni tanımladıktan sonra aşağıdaki dizi arama kodunu kullanabilirsiniz. Bu fonksiyon dizideki ilk eşleşen elemanın indexini geri döndürür. İsterseniz siz eşleşen tüm indexleri ve elemanları geri döndürecek şekilde yeniden düzenleyebilirsiniz.
function findElementIndex(array, propertyName, propertyValue) {
for (var i = 0; i < array.length; i++)
if (array[i][propertyName] == propertyValue)
return i;
}
Bundan sonra yapılacak işlem ise fonksiyonu kullanmak olacaktır. Aşağıdaki gibi bir kullanımı tercih edebilirsiniz. Bu fonksiyonu global bir lokasyona koyarak projenin her yerinde kullanabilirsiniz.
var index = findElement(scope.KlasorListesi, "KlasorOid", scope.DokumanListesi[i].UstKlasorOid);
console.log(index);
Elimizde aşağıdaki gibi bir dizi olduğunu düşünün. Dizi tanımlaması AngularJS kullandığım için aşağıdaki gibi tanımladım. Eğer bu frameworku kullanmıyorsanız normal javascript değişken tanımlama veya kendi frameworkünüze göre tanımlayın. Eğer değişkeni JSON objesi olarak tanımladıysanız aynı işlemleri yapabilirsiniz.
scope.KlasorListesi=[
{
KlasorId: 1,
KlasorAdi: "Deneme",
UstKlasorId: 1,
Seviye: 1,
},
{
KlasorId: 2,
KlasorAdi: "Deneme",
UstKlasorId: 1,
Seviye: 102
},
{
KlasorId: 3,
KlasorAdi: "Test",
UstKlasorId: 1,
Seviye: 5
},
{
KlasorId: 3,
KlasorAdi: "Test",
UstKlasorId: 1,
Seviye: 3
}
];
Değişkeni tanımladıktan sonra aşağıdaki dizi arama kodunu kullanabilirsiniz. Bu fonksiyon dizideki ilk eşleşen elemanın indexini geri döndürür. İsterseniz siz eşleşen tüm indexleri ve elemanları geri döndürecek şekilde yeniden düzenleyebilirsiniz.
function findElementIndex(array, propertyName, propertyValue) {
for (var i = 0; i < array.length; i++)
if (array[i][propertyName] == propertyValue)
return i;
}
Bundan sonra yapılacak işlem ise fonksiyonu kullanmak olacaktır. Aşağıdaki gibi bir kullanımı tercih edebilirsiniz. Bu fonksiyonu global bir lokasyona koyarak projenin her yerinde kullanabilirsiniz.
var index = findElement(scope.KlasorListesi, "KlasorOid", scope.DokumanListesi[i].UstKlasorOid);
console.log(index);
Yorumlar
Yorum Gönder