gpt4 book ai didi

javascript - AngularJS 从单个字段中的字符串中过滤多个单词

转载 作者:行者123 更新时间:2023-11-30 16:03:45 24 4
gpt4 key购买 nike

这里是我的问题的想法:

想象一下,我有一个用户正在寻找一本书。

作为输入,他可以尝试使用书名找到这本书。

让我们来看看:

  $scope.books = ["Heir Of Earth",
"Woman Of The Solstice",
"Hunters Of Next Year",
"Pilots Without Honor",
"Slaves And A Woman",
"Kings And Heroes",
"Decay Of The End",
"Fortune Of The Land",
"Rejecting My Dreams",
"Painting The Angels"];

现在我将用户查询放在一个字符串中:

示例:

$scope.userQueryTitle = "Woman Of";

我想获取所有标题包含“Woman”或“Of”但不是“Woman”和“Of”的书。

从那里,相应的结果应该是这样的:

$scope.booksResult = ["Heir Of Earth",
"Woman Of The Solstice",
"Hunters Of Next Year",
"Slaves And A Woman",
"Decay Of The End",
"Fortune Of The Land"
];

我找到了我的问题的一些部分解决方案,例如使用类似的东西:

查看:

<ul ng-repeat="book in booksResult | filter: getBooksFromTitle">
<li>{{book}}</li>
</ul>

Controller :

$scope.getBooksFromTitle = function(book){
return book.match(($scope.userQueryTitle).split(" ")[0]) ||
book.match(($scope.userQueryTitle).split(" ")[1]);
};

它仅在 $scope.userQueryTitle 仅包含 2 个单词时有效,但我的问题是如果我有 1 会怎样4n 个词?

getBooksFromTitle() 应该对此保持灵活,但我不知道如何处理...

有什么建议吗?

谢谢!

最佳答案

这将为您完成:

$scope.getBooksFromTitle = function(book){
var queryWords = $scope.userQueryTitle.split(" ");
for(var i=0;i<queryWords.length;i++){
return book.match(queryWords[i]);
}
};

关于javascript - AngularJS 从单个字段中的字符串中过滤多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37323838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com