Aşağıdakilere sahip olduğumu varsayarsak:
var array =
[
{"name":"Joe", "age":17},
{"name":"Bob", "age":17},
{"name":"Carl", "age": 35}
]
Ne bir sonuç dizisi olsun ki tüm farklı yaşların bir dizi elde edebilmek için en iyi yolu nedir:
[17, 35]
Alternatif olarak ben veri veya daha iyi bir yöntem "yaş" değerini kontrol her dizi üzerinden yinelenmesi ve varlığı için başka bir dizi karşı kontrol ve değilse eklemek zorunda kalmayacak şekilde yapılandırabilir miyim?
Bir şekilde olsaydı, tekrarı olmadan farklı yaşları çıkarabilirdim ...
Mevcut etkisiz bir şekilde geliştirmek istiyorum ... Bunun yerine "dizi" yerine nesnelerin bir dizi olmak, ancak bazı benzersiz anahtar (yani "1,2,3") ile nesnelerin bir "harita" anlamına gelirse tamam da. Sadece en verimli performans yolunu arıyorum.
Şu anda bunu nasıl yapıyorum, ama benim için yineleme işe yarıyor olsa da verimlilik için crummy gibi görünüyor ...
var distinct = []
for (var i = 0; i < array.length; i++)
if (array[i].age not in distinct)
distinct.push(array[i].age)
Set
nesne ve map
israftır. Bu iş sadece basit bir .reduce()
aşama alıyor.