给定 400.000 个大数据,例如:
var data = [
{
"kDefinition": "ford stream, wade across",
"kMandarin": "shè",
"char": "涉",
"kCantonese": "sip3",
"kJapaneseKun": "WATARU KAKAWARU",
},
{
"kDefinition": "to pierce, to stab; to take",
"kMandarin": "jué",
"char": "鈌",
"kCantonese": "kyut3",
"kJapaneseKun": "SASU"
},
...
]
并给出一个与 char
字段匹配的较小 1000 个单位的子集列表:
var list = ['早', '维', '基', '涉', '百', ..., '科', '月']
如何减少较大的数据以仅保留 list
中存在 obj.char
的 1000 个对象?
编辑: list
和 data
的排序顺序不同。
最佳答案
您可以将 list
数组转换为 Set
,然后在过滤器内使用 has()
方法,如 @Amadan 所建议。
var data = [{"kDefinition":"ford stream, wade across","kMandarin":"shè","char":"涉","kCantonese":"sip3","kJapaneseKun":"WATARU KAKAWARU"},{"kDefinition":"to pierce, to stab; to take","kMandarin":"jué","char":"鈌","kCantonese":"kyut3","kJapaneseKun":"SASU"}]
var list = ['早', '维', '基', '涉', '百', '科', '月']
list = new Set(list)
const result = data.filter(({char}) => list.has(char));
console.log(result)
关于javascript - 如何过滤对象数组以匹配列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217612/