Mongodb обновляет новую позицию для существующего элемента в массиве и добавляет новую, если не существует - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь реализовать SearchHistory для моего приложения, используя NodeJs с MongoDb.

Мой массив вернул: SearchHistory = [«food», «service», «car»]

Я хочупоменять местами позицию элемента в этом массиве на первую позицию, если я вставлю ту же строку.И добавит новую в первую позицию, если она не существует в массиве.

Например: если я ищу «car» в моем приложении, массив будет возвращен как SearchHistory = [«car», «еда »,« служба »]

И будет: SearchHistory = [« книга »,« машина »,« еда »,« служба »], если я вставлю книгу в свое приложение.

Спасибо

1 Ответ

0 голосов
/ 10 декабря 2018

Попробуйте:

SearchHistory = ["car", "food", "service"]

newSearch = "book"

searchExistsIndex = SearchHistory.indexOf(newSearch)

if (searchExists != -1) {
    SearchHistory.splice(searchExists, 1)
    SearchHistory.splice(0, 0, newSearch)

} else {
    SearchHistory.splice(0, 0, newSearch)
}

Переменная newSearch - это новый поиск, который вы сказали.SearchExistsIndex ищет, если строка newSearch уже есть в списке.Если нет, он вернет -1 и добавит только строку newSearch в начало массива.Если он возвращает что-то, кроме -1, он сначала удалит его из списка, а затем добавит новый поиск в начало списка.

Я думаю, что это самый простой способ.Я надеюсь, что это то, что вы искали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...