[英]Filtering object array with ramda.js
我有一个对象数组。 我想对其进行过滤以获取对象,该对象的任何属性均包含数学字符串。
如果我的数组是
var data = [
{"name: "John",
"surname": "Smith"},
{"name": "Peter",
"surname: "Smithie"}]
我并使用字符串“ Smi”进行过滤,它应该返回两个项目。 如果字符串是“ John”,则仅第一个。
这是我的代码:
var filtered = R.filter(R.where({ x: R.contains("Smi")}))(data);
我得到了错误:
Cannot read property 'indexOf' of undefined
有人可以帮我解决我的Ramda功能吗? 我猜一定是我所缺少的小东西。 提前致谢
我无法在Ramda中回答,但是如果您想在JS中实现相同的功能,则可以轻松地执行以下操作:
var data = [{"name": "John", "surname": "Smith"}, {"name": "Peter", "surname": "Smirnof"}], getObjects = (d,f) => d.filter(o => Object.keys(o).some(k => o[k].includes(f))); console.log(getObjects(data,"Smi")); console.log(getObjects(data,"Jo"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.