const sample_table1_data = [
{ title: 'aa-1', customers: ['a', 'b']},
{ title: 'aa-2', customers: ['a', 'c']},
{ title: 'bb-1', customers: ['d', 'e']},
{ title: 'cc-1', customers: ['b', 'e', 'f']},
{ title: 'dd-1', customers: ['f', 'g']},
{ title: 'dd-2', customers: ['g']},
]
我正在尝试过滤如上所示的对象数组。
假设我对 title 是一个字符串,而 customer 是一个字符串数组。
我做了一个名为 filterData 的函数,它接受一个看起来像的对象
let filter_info = {
title: ['aa, cc'], customer: ['b']
}
我希望函数过滤掉 title 中有 aa 和 customers 中有 b 的对象>,期望输出为
output = [
{ title: 'aa-1', customers: ['a', 'b']},
{ title: 'cc-1', customers: ['b', 'e', 'f']},
]
因为这是满足查询的两个对象(title 包含 aa 和 cc AND customers 包含 'b')
我试过了
filterData = (filters) => {
let title_filter = filters.title
let customer_filter = filters.customer
const myItems = this.state.table1_data
const keywordsToFindLower = title_filter.map(s => s.toLowerCase());
const customerKeywords = customer_filter.map(s => s.toLowerCase())
// filters the profile data based on the input query (selected option)
const newArray = myItems.filter(item =>
keywordsToFindLower.some(
title_filter => (item.title.toLowerCase()).includes(title_filter)
)
&&
customerKeywords.some(
customer_filter => (item.customers.toLowerCase()).includes(customer_filter)
)
)
}
但是,这给了我一个错误,因为 customers 是一个数组,而不是一个字符串。
如果我想完成这个任务,正确的用法是什么?
最佳答案
你快到了。您可以使用 Array.some()在过滤器方法中的客户数组上,如下所示:
item.customers.some(value => value.toLowerCase().includes(customer_filter))
那么你的过滤方法应该是这样的:
const newArray = myItems.filter(item =>
keywordsToFindLower.some(
title_filter => (item.title.toLowerCase()).includes(title_filter)
)
&&
customerKeywords.some(
customer_filter =>
(item.customers.some(
value => value.toLowerCase().includes(customer_filter))
)
)
)
关于javascript - 将查询过滤器应用于对象的 JavaScript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57847196/
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
在控制台中反复尝试之后,我想到了这种方法,可以按发生日期对类似activerecord的(Mongoid)对象进行分组。我不确定这是完成此任务的最佳方法,但它确实有效。有没有人有更好的建议,或者这是一个很好的方法?#eventsisanarrayofactiverecord-likeobjectsthatincludeatimeattributeevents.map{|event|#converteventsarrayintoanarrayofhasheswiththedayofthemonthandtheevent{:number=>event.time.day,:event=>ev
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.
我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代
我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby数组,我们在StackOverflow上找到一
我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
我正在使用puppet为ruby程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这