Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将大量Javascript对象过滤到2D数组中最有效的方法是什么?_Javascript_Arrays - Fatal编程技术网

将大量Javascript对象过滤到2D数组中最有效的方法是什么?

将大量Javascript对象过滤到2D数组中最有效的方法是什么?,javascript,arrays,Javascript,Arrays,我的javascript程序中有一个大的对象数组(>1000),还有一个较小的数组,其中包含相互关联的键(每个键在较大的数组中有一个对应的对象)。我希望以最有效的方式搜索大数组,创建一个与较小数组的键匹配的二维对象数组。做这件事最好的方法是什么?我曾尝试在较大的数组上使用filter方法,但我认为这只能生成一维数组,而不能生成所需的相关对象嵌套 下面是问题的一个示例: 大型对象阵列: [{ key: 'misc1' }, { key: 'misc2' }, { key: 'firstRelate

我的javascript程序中有一个大的对象数组(>1000),还有一个较小的数组,其中包含相互关联的键(每个键在较大的数组中有一个对应的对象)。我希望以最有效的方式搜索大数组,创建一个与较小数组的键匹配的二维对象数组。做这件事最好的方法是什么?我曾尝试在较大的数组上使用filter方法,但我认为这只能生成一维数组,而不能生成所需的相关对象嵌套

下面是问题的一个示例:

大型对象阵列:

[{ key: 'misc1' },
{ key: 'misc2' },
{ key: 'firstRelatedValue1' },
{ key: 'firstRelatedValue2' },
{ key: 'secondRelatedValue1' },
{ key: 'secondRelatedValue2' },
...]
较小的二维键阵列:

[
['firstRelatedValue1', 'firstRelatedValue2'],
['secondRelatedValue1', 'secondRelatedValue2']
]
预期最终结果:

[
[{ key: 'firstRelatedValue1' }, { key: 'firstRelatedValue2' }],
[{ key: 'secondRelatedValue1' }, { key: 'secondRelatedValue2' }]
]

到目前为止,你是如何独自解决这个问题的?最简单的方法是为循环设置一组
“较小”数组中的每个数组中始终有两个“键”吗?(子数组中的)所有键都必须匹配吗?@Andreas我发现将大数组上的循环数限制为1的唯一方法是将键数组保持为一维列表,并使用该列表过滤大数组,但这不是预期的结果。如果在键数组上使用一组for循环,则需要在较大的数组上进行多次传递(这是低效的)。如果可能的话,我想最小化较大数组上的循环。@Andreas在实际程序中,每个较小的数组有三个键,但是是的。不清楚较小的一个如何应用于较大的数组。