2016-04-11 17 views
1

Şu anda, alınan öğeler yalnızca verilen öğelerden daha değerliyse teklifleri kabul eden bir buhar ticareti botu oluşturmaya çalışıyorum. ...... yukarıdakiBuhar ticareti için bir bot oluşturuyorum, dizi değerlerini eklerken sorun yaşamaya başladım

var market = require('steam-market-pricing'); 

var names = [ 
    'AWP | Safari Mesh (Factory New)', 
    'AWP | Safari Mesh (Minimal Wear)', 
    'AWP | Safari Mesh (Field-Tested)', 
    'AWP | Safari Mesh (Well-Worn)', 
    'AWP | Safari Mesh (Battle-Scarred)' 
]; 




market.getItemsPrice(730, names, function(data) { 
    for(var i in names) { 
     console.log(names[i] + data[names[i]]['median_price']); 
    } 
}); 

kod ben "isimler" dizisinde listelenen öğelerin tek tek fiyatlarını bulabilirsiniz ama toplam oluşturmak için kendi fiyatlarının her ne kadar eklersiniz?

Here's the package I used to find prices

cevap

0

Kodunuz çalışmıyor neden

var temp = data[names[i]]['median_price'].substring(1); 

Nedeni atama deneyin?

Dize, fiyattan önceki para birimi işaretini içerdiğinden, bu kodu yürütmeye çalışırken "NaN" sonucunu aldınız.

parseFloat(data[names[i]]['median_price']) 

Çözüm

var temp = data[names[i]]['median_price'].substring(1);

Bu, para birimi işaretini dizenin başlangıcından kaldırır.

Kodu eklemek için Snuckus'un kodunu değiştirdim. Başlangıçta bahsettim. Bu kesinlikle toplamları verecektir.

market.getItemsPrice(730, names, function(data) { 
    var total = 0; 
    for(var i in names) { 
     var temp = data[names[i]]['median_price'].substring(1); 
     total += parseFloat(temp); 
     console.log(total); 
    } 
}); 
1

deneyin:

var total = 0; 
for(var i in names) { 
    total += parseFloat(data[names[i]]['median_price']); 
} 
console.log(total); 
+0

Bunu yapmayı denedim ve dönüş olarak "NaN" aldım. –