Filter Lodash-按字符串1,2过滤

Filter Lodash-按字符串1,2过滤,filter,lodash,Filter,Lodash,我有绳子 "1,2" // which is from the db.field 我正在尝试用lodash和一些类似的东西进行过滤 _.filter(jsonArray, function(res) { return (res.id == 1 || res.id == 2); }); 请假设jsonArray如下: [ { 'id': '1', 'age': 60 }, { 'id': '2', 'age': 70 }, { 'id': '3', 'age': 22 }, { 'id': '

我有绳子

"1,2" // which is from the db.field
我正在尝试用lodash和一些类似的东西进行过滤

_.filter(jsonArray, function(res) { return (res.id == 1 || res.id == 2); });
请假设jsonArray如下:

[
{ 'id': '1', 'age': 60 },
{ 'id': '2', 'age': 70 },
{ 'id': '3', 'age': 22 },
{ 'id': '4', 'age': 33 }
];
这里的问题是我需要拆分sting 1,2并应用

但是请注意,1,2并不总是1,2-它可以是1,2,3,并且这个字符串从db.field开始是动态的

现在我正在搜索是否有任何方法可以直接使用字符串say like

-.filter(jsonArray, function(res){ return res.id <is equal to one of the value in 1,2,3,4 >})
-.filter(jsonArray,函数(res){return res.id})

我认为很明显,将这个字符串拆分为数组。。。但我不确定是否要这样做,请帮助解决。

您首先需要拆分
db.field
,使其成为
id
的数组,在匹配项目时可以轻松进行评估。接下来,使用您已经构建的来检查这些项是否匹配使用的
id

var db={field:'1,2'};
var jsonArray=[
{'id':1,'age':60},
{'id':2,'age':70},
{'id':3,'age':22},
{'id':4,'age':33}
];
var id=db.field.split(',').map(Number);
var result=u2;.filter(jsonArray,函数(res){
返回-包括(id、res.id);
});
document.write(“”+JSON.stringify(结果,0,4)+“”)

您首先需要拆分
db.field
,使其成为
id
的数组,在匹配项目时可以轻松评估。接下来,使用您已经构建的来检查这些项是否匹配使用的
id

var db={field:'1,2'};
var jsonArray=[
{'id':1,'age':60},
{'id':2,'age':70},
{'id':3,'age':22},
{'id':4,'age':33}
];
var id=db.field.split(',').map(Number);
var result=u2;.filter(jsonArray,函数(res){
返回-包括(id、res.id);
});
document.write(“”+JSON.stringify(结果,0,4)+“”)

我直接尝试了你的代码,它成功了,但当我实现到我的代码区时,它就不起作用了。起初我很困惑,发现了这一点。当数组为
var jsonArray=[
{'id':1,'age':60},
{'id':2,'age':70},
{'id':3,'age':22},
{'id':4,'age':33}希望您看到区别,这里的id字段是整数而不是字符串。它只是给了我一个空数组。如何修复此问题?请检查更新,我基本上在
db.field
拆分数组中添加了
.map(Number)
,以将字符串数组转换为数字数组。我直接尝试了您的代码,但在我的代码区域实现时,它不起作用。起初我很困惑,发现了这一点。当数组为
var jsonArray=[
{'id':1,'age':60},
{'id':2,'age':70},
{'id':3,'age':22},
{'id':4,'age':33}希望您看到区别,这里的id字段是整数而不是字符串。它只是给了我一个空数组。如何修复此问题?请检查更新,我基本上在
db.field
中添加了
.map(Number)
,以将字符串数组转换为数字数组。
var ids = db.field.split(',').map(Number);
var result = _.filter(jsonArray, function(res) {
  return _.includes(ids, res.id);
});