javascript - 通过动态道具过滤数组(带有嵌套对象)
问题描述
我有一个 N 个对象的数组。我想编写一个过滤器,使用 JSON.stringify 基于多个动态属性进行过滤。
但是动态没有静态属性(如上面的代码)
你有什么想法吗?
return items.filter(item =>
JSON.stringify(item.prop1 && item.prop2 && ....)
.toLowerCase()
.includes(searchParam)
);
解决方案
您将不得不编写一个函数,将您的对象转换为仅具有您想要的属性的精简对象:
function getProperties(obj, propList) {
var newObj = {};
propList.forEach(prop => {
newObj[prop] = obj[prop];
});
return newObj;
}
然后您的代码将如下所示:
var propList = ['id','name','date']; // just for example, put whatever properties you want in here
return items.filter(item =>
JSON.stringify(getProperties(item, propList))
.toLowerCase()
.includes(searchParam)
);
推荐阅读
- scala - 在 Spark/Scala 中使用 date_format 将时间戳转换为星期几字符串
- google-apps-script - GAS 显示“我们很抱歉,从存储读取时发生服务器错误。错误代码 NOT_FOUND。' 当我尝试部署
- kubernetes - 为什么 kubectl exec 需要--?
- nlp - 如何从相似的句子中将自定义意图和实体提取为通用格式?
- winapi - 如何使用 windows c++ api 获取应用程序侦听端口
- python - 编辑字典。在 json 文件中
- java - 如何阅读下一行 BufferedReader?
- python - 输入最多 1 个参数,得到 2 个 python
- xamarin.forms - Xamarin Forms Microsoft.AppCenter.Analytics SSL 问题
- python - TypeError:'float' 对象不可调用(代入公式)