С учетом исходного примера:
var objs = [
{ first_nom: 'Lazslo', last_nom: 'Jamf' },
{ first_nom: 'Pig', last_nom: 'Bodine' },
{ first_nom: 'Pirate', last_nom: 'Prentice' }
];
Сортировка по нескольким полям:
objs.sort(function(left, right) {
var last_nom_order = left.last_nom.localeCompare(right.last_nom);
var first_nom_order = left.first_nom.localeCompare(right.first_nom);
return last_nom_order || first_nom_order;
});
Примечания
a.localeCompare(b)
- универсально поддерживается и возвращает -1,0,1, если a, a==b
, a>b
соответственно.
||
в последней строке дает last_nom
приоритет над first_nom
. var age_order = left.age - right.age;
return -last_nom_order || -first_nom_order || -age_order;
Есть несколько вещей, которые вы можете проверить. Во-первых, убедитесь, что ваш пакет существует внутри среды, запустив:
> source activate myenv
(myenv) > conda list
Там будет список пакетов, которые conda может найти для этой среды. Убедитесь, что вы видите autograd
там!
Затем в вашем ноутбуке Jupyter запустите следующее:
import sys
print(sys.executable)
Показывает полный путь исполняемого файла python записная книжка. Вы должны увидеть нечто похожее на: ~/anaconda3/envs/myenv/bin/python
. Если вы не видите myenv
в пути, Jupyter работает в другой среде. Скорее всего, ваш системный путь сначала найдет другого Jupyter. Проверьте свои переменные среды, чтобы увидеть, появился ли первый Jupyter.
Вы можете заставить Jupyter работать из определенной среды, запустив его с полным путем: ~/anaconda3/envs/myenv/bin/juypter
Вы можете использовать восклицательный знак в ячейке iPython, чтобы установить autograd
следующим образом:
!pip install autograd
.
Таким образом, установка, как гарантируется, будет соответствовать Ячейка iPython.