gpt4 book ai didi

javascript - Angular.js 按数组元素过滤

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:01 25 4
gpt4 key购买 nike

我有一个 json 对象数组,例如:

 $scope.users = [
{name:'Maria',age:25,skills["Angular.js","Node.js"]},
{name:'Maxime',age:28,skills["HTML","MongoDB"]},
{name:'Noemie',age:28,skills["CSS","MongoDB"]}
]

我想做一个搜索引擎。如果用户可以输入一个或多个单词,然后我的应用程序将过滤我的变量。

例如,用户输入“28”和“MongoDB”,然后我将这两个查询放在一个数组中,如下所示

$scope.queries = [28,"MongoDB"]

并用它过滤我的数组:$scope.users。

请注意 $scope.users 并不像示例那么简单,它还有一些包含数组等的其他数组...所以我更喜欢一个函数来“简单地”搜索关键字

我想知道如何做一个函数或过滤器。

最佳答案

不是很理想,但你可以试试这个

var filterQueries = [28,"MongoDB"];
var filteredResults = $scope.users.filter(function(obj){
var match = false;
filterQueries.forEach(function(query){
if ( obj.name == query || obj.age == query || obj.skills.indexOf( query ) != -1 )
{
match = true; //assuming you want any of the query to be found rather than all
}
});
return match;
});

演示

	 
var users = [
{name:'Maria',age:25,skills : ["Angular.js","Node.js"]},
{name:'Maxime',age:28,skills : ["HTML","MongoDB"]},
{name:'Noemie',age:28,skills : ["CSS","MongoDB"]}
];

var filterQueries = [28,"MongoDB"];
var filteredResults = users.filter(function(obj){
var match = false;
filterQueries.forEach(function(query){
if ( obj.name == query || obj.age == query || obj.skills.indexOf( query ) != -1 )
{
match = true; //assuming you want any of the query to be found rather than all
}
});
return match;
});

document.body.innerHTML += JSON.stringify( filteredResults, 0, 4 )

关于javascript - Angular.js 按数组元素过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37116890/

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