【发布时间】:2019-08-20 05:02:43
【问题描述】:
我有这个对象数组:
const data = [
{
id: 1,
name: 'Name1',
encryptionKey: 'AAA'
},
{
id: 2,
name: 'Name2',
encryptionKey: 'BBB'
},
{
id: 3,
name: 'Name3',
encryptionKey: 'CCC'
}
]
还有另一个加密密钥数组:
const encryptionKeys = ['AAA', 'BBB']
然后我将根据encryptionKeys 数组过滤data 数组,如下所示:
var filtered = data.filter(function(item) {
return encryptionKeys.indexOf(item.encryptionKey) !== -1;
});
工作并过滤对象并将它们保存在新数组中。但是,问题是如果encryptionKey 数组有重复的键,例如:
const encryptionKeys = ['AAA', 'BBB', 'BBB']
那么所有重复的键都将被忽略,过滤后的数组在这种情况下将只有 2 个对象而不是 3 个。我在过滤代码中做错了什么?如果encryptionKeys 数组有重复值,则过滤后的数组应该有重复的对象。
【问题讨论】:
-
您在
encryptionKeys中是否有不在data中的项目? -
你期望重复键的输出是什么
-
所以如果
BBB存在n次,那么您希望加密密钥为BBB的对象出现在过滤结果n次吗? -
完全是@FrancisLeigh
标签: javascript arrays reactjs object ecmascript-6