【发布时间】:2019-02-01 16:20:06
【问题描述】:
说明
注意 entry1 和 entry4 对于 property: 'subject' 和 property: 'field' 共享相同的 值。
问题
我正在寻找一种高效且简洁的方法来过滤此数组并获取与propertyies 共享both values 的条目。
更新:
返回值
我不是要转换数据而是分析它。 所以分析的返回值应该是这样的:
[['entry1', 'entry4'],...]
通过这个分析 list 我可以轻松地将我的 triples = [...] 转换为 triples 列表,在其中删除一个条目(不管哪个,可能是 'entry1 ' 或 'entry4'),并更新另一个
[
{ subject: "entry1", property: "subject", value: "sport" },
{ subject: "entry1", property: "field", value: "category" },
{ subject: "entry1", property: "content", value: "football" },
{ subject: "entry1", property: "content", value: "basketball" },
]
附言
-
我不是在寻找像这样的解决方案:
array.filter(({property, value})=> property === 'sport' && value === 'category')
我不知道“运动”或“类别”。 这些是动态值。
- 我的实际数据要大得多,每个条目包含更多的属性类型。它也没有我在这里展示的那么好。我确实简化了它,所以请注意性能。
代码sn-p:
const triples = [
{ subject: "entry1", property: "subject", value: "sport" },
{ subject: "entry1", property: "field", value: "category" },
{ subject: "entry1", property: "content", value: "football" },
{ subject: "entry4", property: "subject", value: "sport" },
{ subject: "entry4", property: "field", value: "category" },
{ subject: "entry4", property: "content", value: "basketball" },
{ subject: "entry2", property: "subject", value: "music" },
{ subject: "entry2", property: "field", value: "category" },
{ subject: "entry2", property: "content", value: "notes" },
{ subject: "entry3", property: "subject", value: "painting" },
{ subject: "entry3", property: "field", value: "category" },
{ subject: "entry3", property: "content", value: "drawings" }
];
【问题讨论】:
-
到目前为止您尝试过什么?添加当前方法的 sn-p。
-
我也不确定您希望生成的数据结构是什么样的。
-
我仍然需要看看你期望的结果是什么。另外......问开放式......真的很不受欢迎......“你将如何编码这个”。
-
@ueeeieu - 请您运行我提供的 sn-p 并就您正在寻找的内容提供反馈吗?我很确定我已经提供了有关如何处理此问题的足够信息,您应该能够接受我所做的并完成它。我也很乐意继续提供帮助。
-
@ueeeieu,你能给点意见吗?
标签: javascript arrays performance filtering lodash