>// → упражнения: 0.0685994341
>// → выходной: 0.1371988681
>// → хлеб: -0.0757554019
>// → пудинг: -0.0648203724
>// и так далее...
Большинство корреляций лежат близко к нулю. Морковки, хлеб и пудинг, очевидно, не связаны с обращением в белку. Но оно вроде бы более часто происходит на выходных. Давайте отфильтруем результаты, чтобы выводить только корреляции больше 0,1 или меньше -0,1
>for (var event in correlations) {
> var correlation = correlations[event];
> if (correlation > 0.1 || correlation < -0.1)
> console.log(event + ": " + correlation);
>}
>// → выходной: 0.1371988681
>// → чистил зубы: -0.3805211953
>// → конфета: 0.1296407447
>// → работа: -0.1371988681
>// → спагетти: 0.2425356250
>// → читал: 0.1106828054
>// → арахис: 0.5902679812
Ага! У двух факторов корреляции заметно больше остальных. Арахис сильно влияет на вероятность превращения в белку, тогда как чистка зубов наоборот, препятствует этому.
Интересно. Попробуем вот что:
>for (var i = 0; i < JOURNAL.length; i++) {
> var entry = JOURNAL[i];
> if (hasEvent("арахис", entry) &&
> !hasEvent("чистка зубов", entry))
> entry.events.push("арахис зубы");
>}
>console.log(phi(tableFor("арахис зубы", JOURNAL)));
>// → 1
Ошибки быть не может! Феномен случается именно тогда, когда Жак ест арахис и не чистит зубы. Если б он только не был таким неряхой относительно оральной гигиены, он бы вообще не заметил своего несчастья.
Зная это, Жак просто перестаёт есть арахис и обнаруживает, что трансформации прекратились.
У Жака какое-то время всё хорошо. Но через несколько лет он теряет работу, и в конце концов ему приходится наняться в цирк, где он выступает как Удивительный Человек-белка, набирая полный рот арахисового масла перед шоу. Однажды, устав от столь жалкого существования, Жак не обращается обратно в человека, пробирается через дыру в цирковом тенте и исчезает в лесу. Больше его никто не видел.
В конце главы хочу познакомить вас ещё с несколькими концепциями, относящимися к объектам. Начнём с полезных методов, имеющихся у массивов.
Мы видели методы >push
и >pop
, которые добавляют и отнимают элементы в конце массива. Соответствующие методы для начала массива называются >unshift
и >shift
.
>var todoList = [];
>function rememberTo(task) {
> todoList.push(task);
>}
>function whatIsNext() {
> return todoList.shift();
>}
>function urgentlyRememberTo(task) {
> todoList.unshift(task);
>}
Данная программа управляет списком дел. Вы добавляете дела в конец списка, вызывая >rememberTo("поесть")
, а когда вы готовы заняться чем-то, вызываете