Я делаю простую приложение для Twitter, чтобы работать над своим javascript. Код, указанный ниже, должен идентифицировать каждое местоположение твитов и подсчитывать количество твитов на каждое местоположение.Javascript - Создает новый массив вместо приращения
Однако он не увеличивается, он просто создает новый массив. Что не так с моим кодом? Как я могу сделать это лучше?
Спасибо
var Twitter = require('node-twitter'),
twit = {},
loc = [];
twit.count = 0;
var twitterStreamClient = new Twitter.StreamClient(
//credentials
);
twitterStreamClient.on('close', function() {
console.log('Connection closed.');
});
twitterStreamClient.on('end', function() {
console.log('End of Line.');
});
twitterStreamClient.on('error', function (error) {
console.log('Error: ' + (error.code ? error.code + ' ' + error.message : error.message));
});
twitterStreamClient.on('tweet', function (tweet) {
if (loc.indexOf(tweet.user.location) === -1) {
loc.push({"location": tweet.user.location, "locCount": 1});
} else {
loc.loation.locCount = loc.loation.locCount + 1;
}
console.log(loc);
});
var search = twitterStreamClient.start(['snow']);
Спасибо! оно работает! Не могли бы вы рассказать мне, что здесь происходит? Я предполагаю, что есть индекс и что каждый твит проходит через него, но я не уверен. – nickfrenchy
У вас есть массив объектов, но вы действовали как объект объектов. И indexof может работать только в том случае, если вы передадите туда тот же объект –
'loc.loation.locCount' может работать, если у вас есть' var loc = {loation: {locCount: 1}}; ', и он не мог создать группировку' tweet.user.location'. –