我对 JavaScript 真的很陌生,遇到了一个我不明白的问题。
我想编写一个函数,它将一个数组作为参数,如果数组中的所有元素都相同,则返回 true。
现在我知道一个简单的 for 循环更有效,但我想用forEach()来做这个简单的函数。
function isUniform(array) {
let uniChecker = array[0];
array.forEach(function(element) {
if (uniChecker !== element) {
return false;
}
});
return true;
}
Run Code Online (Sandbox Code Playgroud)
它总是返回真,即使它应该返回假。
我的主要问题是返回的contains()方法ArrayList始终为false,但我不确定为什么。
我创建了一个,ArrayList<Position>名为allValidPositions,其中包含我的自定义类的许多实例Position。
当我尝试在中找到特定Position元素时ArrayList,它总是返回false。
// The parameters represent X and Y coordinates
Position positionToCheck = new Position(0, 0);
if (allValidPositions.contains(positionToCheck) {
System.out.println("Found");
} else {
System.out.println("Not found");
}
Run Code Online (Sandbox Code Playgroud)
Not found尽管我知道有一个Position应该是同一对象(对象中的字段和值相同),但它始终会打印。