我正在尝试使用带有MongoDb的NodeJ为我的应用程序实现SearchHistory。
我的数组返回了: SearchHistory = [“食品”,“服务”,“汽车”]
如果我插入相同的String,我想将该项目在此数组中的位置交换到第一个位置。如果数组中不存在新元素,则将其添加到第一个位置。
例如:如果我在应用程序中搜索“ car”,则该数组将返回为 SearchHistory = [“汽车”,“食品”,“服务”]
并且如果我在应用程序中插入书籍,则将为:SearchHistory = [“书籍”,“汽车”,“食品”,“服务”]。
谢谢
答案 0 :(得分:1)
尝试一下:
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,它将首先从列表中删除,然后将newSearch添加到列表的前面。
我认为这是最简单的方法。我希望这就是您想要的。