Why does my var i in for loop change from 0 to 1?
This line: for for (var i = 0; i < siteDatabase.length; i++) increments 0 to 1 ?in the first loop? which then causes siteDatabase[i] to access element at index 1 instead of 0. I thought i++ increment on the 2nd loop?
The result is a error by method call (push) to an undefined element.
var newsUpdates = {};
var siteDatabase = [
"http://example.to"
];
var scraperjs = require('scraperjs');
for (var i = 0; i < siteDatabase.length; i++) {
news[siteDatabase[i]] = [];
scraperjs.StaticScraper.create(siteDatabase[i])
.scrape(function($) {
return $(".lang_English").map(function() {
return $(this).children('td').eq(1).children(
'a').last().text();
}).get();
}, function(news) {
for (var x = 0; x < news.length; x++) {
if (news[x] == '') {
news.splice(x, 1);
}
}
for (var x = 0; x < news.length; x++) {
// i in siteDatabase[i] is not 0, but 1??
newsUpdates[siteDatabase[i]].push({
"title": news[x]
});
// TypeError: Cannot call method 'push' of undefined
}
console.log(newsUpdates);
})
}
The problem is on the area I comment between the codes.