ИТАК дал этот вход (другие свойства были лишены для краткости):Сортировка объекта по индексам массива в JavaScript?
var names = [{
name: 'Michael'
}, {
name: 'Liam'
}, {
name: 'Jake'
}, {
name: 'Dave'
}, {
name: 'Adam'
}];
Я хотел бы, чтобы отсортировать их по индексам другого массива, а если они не находятся в этом массиве, сортировать в алфавитном порядке.
var list = ['Jake', 'Michael', 'Liam'];
Давая мне выход:
Jake, Michael, Liam, Adam, Dave
Я попытался с помощью ло-тире, но это не совсем верно:
names = _.sortBy(names, 'name');
names = _.sortBy(names, function(name) {
var index = _.indexOf(list, name.name);
return (index === -1) ? -index : 0;
});
как выход:
Jake, Liam, Michael, Adam, Dave
Любая помощь была бы действительно оценена!
Почему '' Adam' затем Dave', как ты что-то выход? – elclanrs
Надеюсь, вы знаете, что в javascript есть функция, называемая sort(), и она может сортировать ваш массив по алфавиту! поэтому теперь проблема заключается в перемещении ваших элементов в другой массив? list.sort(); будет выводить Adam, Dave, Jake, Michael, Liam – ProllyGeek
@elclanrs - «если они не находятся в этом массиве, сортируйте по алфавиту», поэтому в других выражениях весь массив сортируется в алфавитном порядке, но эти три клавиши на первом месте, если это имеет смысл. Да, я знаю «sort()», хотя я уже использовал lodash в проекте, поэтому мне не важно использовать собственный метод над (на мой взгляд, опрятным) lodash one. – Ben