Javascript 如何检查数组中是否有两个或多个相同的未知字符串?
如果数组中有两个或多个相同的值,我如何签入JavaScript 比如,Javascript 如何检查数组中是否有两个或多个相同的未知字符串?,javascript,arrays,Javascript,Arrays,如果数组中有两个或多个相同的值,我如何签入JavaScript 比如, ['one','two','three']->false,因为数组项不会出现一次以上 ['one','one','two']->true,因为'one'不止一次出现 ['one','one','one','two']->true,因为'one'不止一次出现 ['askja','askja','askja','iamms']->true,因为'askja'出现3次 提前谢谢 您可以遍历数组并将每个元素推送到一个集合中。如果存在
['one','two','three']
->false,因为数组项不会出现一次以上
['one','one','two']
->true,因为'one'不止一次出现
['one','one','one','two']
->true,因为'one'不止一次出现
['askja','askja','askja','iamms']
->true,因为'askja'出现3次
提前谢谢 您可以遍历数组并将每个元素推送到一个集合中。如果存在任何冲突,则您知道其中包含相同的值。您可以迭代数组并将每个元素推到一个集合中。如果存在任何冲突,则您知道其中包含相同的值。一个简单的解决方案是定义一个
映射,该映射通过键存储项值的存在性(即true
如果存在)
如果通过该映射检测到此类项存在,则可以推断输入数组中存在字符串的多个副本:
函数具有多个副本(arr){
/*
一种临时映射,用于存储中存在的密钥的“true”
啊
*/
常量映射={};
用于(arr的施工项目){
如果(映射[项目]){
/*
如果映射包含项的键/值,则当前项具有
在arr中至少出现两次
*/
返回true;
}
映射[项目]=真;
}
返回false;
}
log(有多个副本(['one','two','three']),“==false”)
log(有多个副本(['one','one','two']),“==true”)
log(有多个副本(['one','one','one','two']),“===true”)
一个简单的解决方案是定义一个map
,它按键存储项值的存在(即true
如果存在)
如果通过该映射检测到此类项存在,则可以推断输入数组中存在字符串的多个副本:
函数具有多个副本(arr){
/*
一种临时映射,用于存储中存在的密钥的“true”
啊
*/
常量映射={};
用于(arr的施工项目){
如果(映射[项目]){
/*
如果映射包含项的键/值,则当前项具有
在arr中至少出现两次
*/
返回true;
}
映射[项目]=真;
}
返回false;
}
log(有多个副本(['one','two','three']),“==false”)
log(有多个副本(['one','one','two']),“==true”)
log(有多个副本(['one','one','one','two']),“===true”)
有几种方法可以做到这一点:
1:使用Stevens Qiu建议的方法。如果数组和集合的长度不相等,则表示数组中存在重复。这是我最喜欢的
2:遍历数组。在每次迭代中,将该值添加到哈希中。如果该值已经在散列中,则存在重复,因此返回true
3:遍历数组。在每次迭代中,获取项目的索引(indexOf())和项目的最后一个索引(lastIndex())。如果这些值不相等,则返回true
const arr=['hi','bye','hi'];
常量arr2=['hi','bye','what'];
//设置大小 console.log(arr2.length==新集合(arr2.size))代码>有几种方法可以做到这一点:
1:使用Stevens Qiu建议的方法。如果数组和集合的长度不相等,则表示数组中存在重复。这是我最喜欢的
2:遍历数组。在每次迭代中,将该值添加到哈希中。如果该值已经在散列中,则存在重复,因此返回true
3:遍历数组。在每次迭代中,获取项目的索引(indexOf())和项目的最后一个索引(lastIndex())。如果这些值不相等,则返回true
const arr=['hi','bye','hi'];
常量arr2=['hi','bye','what'];
//设置大小 console.log(arr2.length==新集合(arr2.size))代码>您可以使用它来获取唯一值和重复项,并确定它们是否重复
const array = [];
const uniqueItems = [...new Set(array)]
const duplicates = array.reduce((acc, item) => {
return uniqueItems.includes(item) ? acc : [...acc, item];
}, []);
const hasDuplicate = duplicates.length > 0;
您可以使用它来获取唯一值和重复项,并确定它们是否重复
const array = [];
const uniqueItems = [...new Set(array)]
const duplicates = array.reduce((acc, item) => {
return uniqueItems.includes(item) ? acc : [...acc, item];
}, []);
const hasDuplicate = duplicates.length > 0;
可能重复的可能重复的感谢!这回答了我的问题,但我忘了问另外一件事。如何获得出现两次的实际字符串?要获得实际字符串,最好按照答案的方法2所述进行迭代。当您找到哈希中已经存在的键(Object.hasOwnProperty(key))时,返回字符串。谢谢!这回答了我的问题,但我忘了问另外一件事。如何获得出现两次的实际字符串?要获得实际字符串,最好按照答案的方法2所述进行迭代。当您找到哈希中已经存在的键(Object.hasOwnProperty(key))时,返回字符串。