我写了一个简单的函数来检查一个数组是否包含重复项,我希望它返回true,如果它有,如果它没有,则返回false。
function containsDuplicates(a) {
var hash = {};
a.forEach((elem, index) => {
if (hash[elem] === undefined) {
hash[elem] = 1;
} else {
console.log('true')
return true;
}
if (index === a.length - 1) {
console.log('false')
return false;
}
})
}
var arr = [1, 2, 3, 4];
containsDuplicates(arr)
我的console.log日志很好,但它似乎没有达到回报。我的整个函数每次都返回undefined。为什么会这样?
答案 0 :(得分:6)
您将从传递给forEach()
的回调中返回。
答案 1 :(得分:1)
您正在从传递给foreach的回调中返回。你应该尝试这样的事情。
function hasDuplicates(array) {
var keyStore = {};
for (var i = 0; i < array.length; ++i) {
var value = array[i];
if (value in keyStore) {
return true;
}
keyStore[value] = true;
}
return false;
}