我使用 angular 作为前端。我有以下字符串数组。我想用另一个“(键,值)对象”的匹配键过滤这个“数组”。
字符串数组:
var stringArr = ["vijay-1110","viki-1100","ram-2110","mark-2100"]
(键,值)对象:
var obj = {"viki-1100":6,"mark-2100":2}
只返回 stringArr
中不匹配的键,所以需要的输出:
var result = ["vijay-1110","ram-2110"]
我没有尝试过下面的代码,它没有返回所需的输出?
var filterFunction = function(stringArr,obj){
if(angular.equals({}, obj)){
return stringArr;
}
else{
_.each(stringArr,function(input,index){
Object.keys(obj).forEach(function(key) {
if(input === key){
stringArr.splice[index,1];
}
});
});
return stringArr;
}
这不会过滤stringArr
,它总是返回stringArr
中的所有结果吗?
最佳答案
尝试
stringArr.filter( s => typeof obj[s] != "undefined" )
编辑
我意识到 OP 正在寻找与我的答案相反的东西,所以只需将 !=
替换为 ==
stringArr.filter( s => typeof obj[s] == "undefined" )
关于javascript - 使用angularjs中的另一个(键,值)对象过滤字符串数组中的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47647488/