【发布时间】:2016-06-06 20:23:28
【问题描述】:
我正在尝试使用 Lo-Dash 在 Angular JS 中搜索 JSON 对象。这里的挑战是我的 JSON 结构会动态变化。因此,我的搜索查询字符串也必须更改。
我的 JSON 格式为:
{
"SERIES": "ABC000123123",
"SECTOR": "E",
"INDUSTRY": "N31",
"DURATION": "1A" },
{ "SERIES": "ABC000123456",
"SECTOR": "E",
"INDUSTRY": "N11",
"DURATION": "12" },
{ "SERIES": "ABC000456789",
"SECTOR": "E",
"INDUSTRY": "N31",
"DURATION": "1B" }
我的 JSON 也可以是以下格式:
{
"SERIES": "DEF000321",
"AREA": "C2",
"ITEM": "123" },
{
"SERIES": "DEF000321",
"AREA": "D0",
"ITEM": "675" },
AREA、ITEM、SECTOR、INDUSTRY 等键会有所不同。
在上述所有情况下,只有 SERIES 字段保持不变。 我需要传入其余属性的键、值对来检索 SERIES 值。
为简单起见,我使用 lodash 搜索上述 JSON 的方法如下:
_.map(_.filter(JSON_Object, function (value) {
return (value.AREA == D0) && (value.ITEM == C2) }), 'SERIES');
我在哪里以编程方式生成以下字符串:
(value.AREA == 'D0') && (value.ITEM == 'C2')
这种方法行不通。 当我对这些值进行硬编码时,它工作正常。当我以编程方式生成查询字符串时,不是相反。
我尝试遍历列表并一次过滤掉一个属性,但这会增加循环次数和搜索的复杂性。
有什么建议/解决方法吗?提前致谢
编辑:添加控制台截图: enter image description here
【问题讨论】: