Javascript 使用angularjs中的另一个(键、值)对象筛选字符串数组中的匹配项
我使用angular作为前端。我有下面的字符串数组。我想用另一个(键,值)对象的匹配键过滤这个“数组” 字符串数组:Javascript 使用angularjs中的另一个(键、值)对象筛选字符串数组中的匹配项,javascript,arrays,angularjs,json,foreach,Javascript,Arrays,Angularjs,Json,Foreach,我使用angular作为前端。我有下面的字符串数组。我想用另一个(键,值)对象的匹配键过滤这个“数组” 字符串数组: var stringArr=[“vijay-1110”、“viki-1100”、“ram-2110”、“mark-2100”] (键、值)对象: 要仅从stringArr返回不匹配的键,因此需要输出: var result = ["vijay-1110","ram-2110"] 我已经尝试了下面的代码,它没有返回所需的输出 var filterFunction = functi
var stringArr=[“vijay-1110”、“viki-1100”、“ram-2110”、“mark-2100”]
(键、值)对象:
要仅从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" )
您可以使用
中的检查对象中是否存在键。使用array#filter
遍历数组,并为每个值返回不存在的值
var stringArr=[“vijay-1110”、“viki-1100”、“ram-2110”、“mark-2100”];
var obj={“viki-1100”:6,“mark-2100”:2};
var result=stringArr.filter(name=>!(对象中的名称));
控制台日志(结果)代码>请尝试以下方法:
var stringArr=[“vijay-1110”、“viki-1100”、“ram-2110”、“mark-2100”]
变量obj={“viki-1100”:6,“mark-2100”:2}
变量结果=stringArr.filter(函数(项){
返回!(obj中的项目)
});
console.log(result)
下面的代码用于管理obj为空对象的情况。key(…).length用于检查obj是否为空对象
var stringArr=[“vijay-1110”、“viki-1100”、“ram-2110”、“mark-2100”];
var obj={“viki-1100”:6,“mark-2100”:2};
var filterFunction=函数(stringArr,obj){
返回stringArr.filter(str=>Object.keys(obj).length==0 | | obj[str]);
}
日志(filterFunction(stringArr,obj));
log(filterFunction(stringArr,{}))代码>
stringArr.filter( s => typeof obj[s] == "undefined" )