如何在javascript对象中进行模式匹配
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在javascript对象中进行模式匹配相关的知识,希望对你有一定的参考价值。
我可以使用任何lodash方法在javascript中针对以下问题进行模式匹配吗?我有键= [x,y,z]和object = {x:'a',x0:'a0',y:'b',y0:'b1',y1:'c',k:'k' ,k1:'k1'..}
我需要以= {x:'a',x0:'a0',y:'b',y0:'b1',y1:'c'}获得结果]
基本上,我需要给出一个键数组和一个对象,它应该返回一个带有所有以键为子字符串的键的对象。
答案
不知道有什么lodash方法可以做到这一点,但并不复杂:
const keys = ['x', 'y', 'z'];
const obj = { x: 'a', x0: 'a0', y: 'b' ,y0:'b1', y1:'c' };
const matched = keys.reduce((acc, key) => {
Object.entries(obj)
.filter(([k]) => k.includes(key))
.forEach(([k, v]) => (acc[k] = v));
return acc;
}, {});
另一答案
不确定lodash
,但您可以使用本机JavaScript相当简单地做到这一点:
const keys = [ 'x', 'y', 'z'];
const object = { x: 'a', x0: 'a0', y: 'b' ,y0:'b1', y1:'c', k:'k', k1:'k1'};
const validEntries = Object.entries(object).filter(([key, val]) => keys.some(k => key.includes(k)));
const result = Object.fromEntries(validEntries);
console.log(result);
以上是关于如何在javascript对象中进行模式匹配的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript / Node js 存储对象中不匹配的字符串
在 PL/SQL Developer Find & Replace 中使用正则表达式模式时,如何访问匹配的对象以进行替换?
JavaScript之基础-10 JavaScript 正则表达式(概述定义正则RegExp对象用于模式匹配的String方法)