首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Lodash - string 1,2过滤器

Lodash - string 1,2过滤器
EN

Stack Overflow用户
提问于 2016-05-21 16:57:17
回答 1查看 708关注 0票数 0

我有绳子

代码语言:javascript
运行
复制
"1,2" // which is from the db.field

我试着用房客过滤,下面的一些东西起作用了

代码语言:javascript
运行
复制
_.filter(jsonArray, function(res) { return (res.id == 1 || res.id == 2); });

请假定jsonArray如下:

代码语言:javascript
运行
复制
[
{ 'id': '1', 'age': 60 },
{ 'id': '2', 'age': 70 },
{ 'id': '3', 'age': 22 },
{ 'id': '4', 'age': 33 }
];

问题是我需要把毒刺1,2分开,然后应用,

但是请注意,1,2并不总是1,2 -它可能是1,2,3,并且这个字符串是来自db.field的动态的。

现在我正在搜索是否有任何方法可以使用字符串,比如

代码语言:javascript
运行
复制
-.filter(jsonArray, function(res){ return res.id <is equal to one of the value in 1,2,3,4 >})

我觉得很明显,把这个字符串分成数组.但我不能肯定,请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-21 17:31:29

首先,您需要将db.field拆分为ids数组,在匹配项时可以轻松地对其进行评估。接下来,使用您已经构建的过滤器()来检查这些项是否与使用包括ids匹配。

代码语言:javascript
运行
复制
var ids = db.field.split(',').map(Number);
var result = _.filter(jsonArray, function(res) {
  return _.includes(ids, res.id);
});

代码语言:javascript
运行
复制
var db = { field: '1,2' };


var jsonArray = [
  { 'id': 1, 'age': 60 },
  { 'id': 2, 'age': 70 },
  { 'id': 3, 'age': 22 },
  { 'id': 4, 'age': 33 }
];

var ids = db.field.split(',').map(Number);
var result = _.filter(jsonArray, function(res) {
  return _.includes(ids, res.id);
});

document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
代码语言:javascript
运行
复制
<script src="https://cdn.jsdelivr.net/lodash/4.12.0/lodash.min.js"></script>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37365725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档