Bir dizi veya nesne arasında doğru bir şekilde dönecek genel bir döngü oluşturmak için herhangi bir yol var mı? Döngü için aşağıdakileri yazabileceğimi biliyorum, ancak bir diziye eklenecek diğer özellikler arasında da dönecektir.Javascript Döngü için Genel
for (item in x) {
console.log(item)
}
bu derken yineleme olacak döngüsü için bir anlamı:
x = [1, 2]
x.foo = "foo"
y = {first:1, second: 2}
x
1
2
y
first
second
kadar
arkasındaki neden olduğunu ben çalışma zamanına kadar ne olacağını bilmiyorum x (ne bir Dizi veya Nesne). Çalışma zamanında kontrol edecek bir işlev oluşturmak için tek seçeneğim var mı?
Eğer uğraşıyoruz ne tür bilmiyorsanız, size uğraşıyoruz türünü bilmek bir yerime koy çalışmalıdır. İşçi tarafından adam öldürmeyi önlemenin en kolay yolu. –
Yorumunuza kesinlikle katılıyorum. Berraklık her zaman istenir. Belirsizliğin sebebi, Javascript'i derleyen dinamik bir dil için bir derleyici yazıyorum. Bu nedenle, döngü kaynağının ne tür olduğunu bilmek zorunda değilim, bu yüzden çalışma zamanında çalışacak bir for döngüsü oluşturmanın genel bir yoluna ihtiyacım vardı. – cbillingham
JS'de her şey bir Nesne'dir. Bu yüzden sizin durumunuzda dizileri işlemek ve hatta nesneler olarak işlev görmek daha akıllıca olabilir çünkü gerçek bir fark yoktur. Yukarıdaki örnekte 'x = [1, 2]; x.foo = "foo"; 'Object.keys (x) '[" 0 "," 1 "," foo "]' yi listeleyecektir, ancak size numaralandırılamayan "length" özelliğini gösterecektir. Bazı durumlarda 'Object.getOwnPropertyNames (x); 'i kullanmayı tercih edebilirsiniz ve bu sayılar, sayısız oldukları veya" ["0", "1", "length", "foo"] 'gibi değillerse, kendi özelliklerine dönecektir. – Redu