Мне нужно отсортировать массив javascript в результатах поиска по ключевому слову, которое мы искали. Например:
var profile = [
{name: 'Arjun', age: 10},
{name: 'Manu', age: 12},
{name: 'Lipin', age: 15},
{name: 'Anu', age: 11},
{name: 'Anupama', age: 21},
{name: 'Jijo', age: 34}
];
И если ключевое слово для поиска "Anu". Я хочу получить результат следующим образом.
[
{name: 'Anu', age: 11},
{name: 'Anupama', age: 21},
{name: 'Manu', age: 12}
]
То есть мне нужно отфильтровать массив и отсортировать результат по ключевому слову.
Ниже приведен код, который я пробовал. Поиск работает нормально. Как мне выполнить фильтрацию по ключевому слову для поиска?
var profile = [
{name: 'Arjun', age: 10},
{name: 'Manu', age: 12},
{name: 'Lipin', age: 15},
{name: 'Anu', age: 11},
{name: 'Anupama', age: 21},
{name: 'Jijo', age: 34},
{name: 'Abhiram', age: 22},
{name: 'Ram', age: 20},
{name: 'Ram Gopal', age: 21},
{name: 'Ramachandran', age: 20},
{name: 'Sreeram', age: 19},
];
beneficiaryname = "Anu";
result = profile.map(function(item, index){
var existingname = 1;
var row_ben_name = item.name;
existingname = row_ben_name.toLowerCase().search(beneficiaryname.toLowerCase()) !== -1;
if (existingname){
return item;
}
});
result = result.filter(function( element ) {
return element !== undefined;
});
console.log(result);
ПРИМЕЧАНИЕ. Я хочу отсортировать массив по ключевому слову поиска. Не по умолчанию сортировка AZ.
ОБНОВЛЕНИЕ:
Для большей ясности я обновил свой вопрос, добавив больше данных и ожидаемых результатов.
Если я поиск с другим ключевым словом "Ram". Мне нужен следующий результат.
[
{name: 'Ram', age: 20},
{name: "Ram Gopal", age: 21},
{name: "Ramachandran", age: 20},
{name: "Abhiram", age: 22},
{name: "Sreeram", age: 19}
]
См. Ожидаемый выше результат отсортирован по ключевому слову в поиске. То есть в отсортированном результате сначала нужно отсортировать точный результат поиска, затем ключевое слово сначала в строке, затем в любом месте внутри, затем в конце строки. Я надеюсь, что у всех есть проблема.