我需要匹配两个数组的帮助。我在示例代码中有TypeScript,但可以理解,因为它或多或少地涉及数组操作。
简而言之:
我有两个数组; myItems[]
和allItems[]
。 myItems[]
最多只能容纳4个值。
我想首先检查myItems[]
中的项目是否为4,并且//或是否在另一个数组allItems[]
中。
如果否:用myItems[]
中的值填充allItems[]
(直到它包含4个值)和/或用{{1}中的其他项目替换缺少的项目(相对于allItems []) }}(我尝试使用默认值,而不是在示例代码中随机获取值)。
说明:
我有一个小部件(快速链接)模块,一次显示4个链接,但总共有20个不同的链接(或更多)。所有链接都存储在列表中,每个链接都有自己的唯一ID。在代码中,所有链接都被提取并以数组形式返回(如上述示例中的allItems [])。
用户可以将他/她想要显示的链接保存在窗口小部件中。用户设置将被存储并作为具有用户已保存链接的ID的数组返回。像上面的allItems[]
,
问题:
我有一个解决方案,可以检查myItems[]
的长度,并根据需要填充myItems[]
中的项目。但是,它不会检查allItems[]
中是否存在用户数组中的项目,然后使用默认链接填充该项目。实际上,这意味着用户可以保存链接,链接将按预期显示在小部件中。但是,如果列表中的链接被删除(然后将在allItems[]
数组中被删除),则仅显示3个项目,因为allItems
不检查myItems[]
数组看看那里是否存在。
代码:
allItems[]
答案 0 :(得分:1)
一种简单的检查数组是否包含值的方法是使用includes()
方法。
for(let value of myitems){
if(allitems.includes(value)){
console.log("Duplicate")
}
}
上面的代码将遍历myitems
数组中的每个值,并测试该值是否在allitems
数组中。