OuterArray.indexOf(innerArray) не находит вложенный массив
Делаю упражнение 3 из главы 5 книги Eloquent javascript. Видимо, что-то путаю в синтаксисе, получаю неожиданный результат.
var centuries = [];
for (person in ancestry) {
var century = (Math.ceil(ancestry[person]["died"] / 100));
if (centuries.indexOf(century) ===-1) centuries[century] = [];
centuries[century].push(ancestry[person]["died"] - ancestry[person]["born"]);
console.log("age", ancestry[person]["died"] - ancestry[person]["born"]);
console.log("cent", century);
}
Хочу в результате получить массив массивов с веками и продолжительностями жизни в них:
[18:[75,30,28],19:[67,35,88],20:[45,94,65]]
Почему-то на следующем проходе условие не срабатывает, и внутренний массив затирается пустым, дело видимо в некорректном использовании indexOf
в условии? И в итоге получаю массив вида:
[18:[28],19:[88],20:[65]]
Что я делаю не так?
Jsfiddle с исходными данными и полным кодом.