【发布时间】:2016-05-18 00:28:08
【问题描述】:
我有两个对象数组,如下所示:
var array1 = [{"id": "-1","OwnerID": 777,"Admin": "true"},{"id": "-1","OwnerID": 555,"Admin": "true"},{"id": "-1","OwnerID": 444,"Admin": "true"},{"id": "-1","OwnerID": 222,"Admin": "true"},{"id": "-1","OwnerID": 111,"Admin": "true"}];
var array2 = [{"id": 777, "OwnerName": "Blah", "OwnerType": "Test"},{"id": 555, "OwnerName": "Blah", "OwnerType": "Test"},{"id": 444, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 222, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 111, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 234, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 432, "OwnerName": "Blah", "OwnerType": "Test"},{"id": 112, "OwnerName": "Blah", "OwnerType": "BusinessMan"},{"id": 114, "OwnerName": "Blah", "OwnerType": "Test"}]
我需要得到一个经过过滤的array1 数组,其中array2 中的OwnerType 是Test。 array1 中的 OwnerID 链接到数组 2 中的 id。我希望用尽可能少的行来执行此操作。理想情况下,我主要想看看数组长度是否大于 1,因为第一个数组应该只有一个这种类型。任何帮助表示赞赏。
编辑:
所需的输出应该是 array1 看起来像:
[{"id": "-1","OwnerID": 777,"Admin": "true"},{"id": "-1","OwnerID": 555,"Admin": "true"}]
【问题讨论】:
-
您能否提供一个
your_function(array1, array2)所需输出的示例? -
@epascarello 我已经尝试过,我只是很难理解如何使用 2 个数组来做到这一点:|
-
我对你的问题感到困惑,你说“......数组2中的 OwnerType 是测试”。我在您的示例中没有看到“测试”,也没有看到您预期的输出数组......
-
@Himmel 是的,将对象保留在数组 1 中的决定因素是 array2 是否具有键 OwnerType: 测试并加入两个数组是 array1 的 OwnerID 和 array2 的 id
标签: javascript arrays ecmascript-6