Я пишу код для рисования гексагональной сетки с использованием svg на экране, поэтому я использую один шестиугольник вместо шаблона, так что я в конечном итоге хочу сделать каждый отдельный шестиугольник объектом ссылка наСтранное поведение при проверке состояния в javascript
У меня есть вид нарисованных шестиугольников, используя некоторые математические и точечные ссылки.
Так вместо того, чтобы этот сложный, то это на самом деле, пытаясь объяснить свой код, вот мой код https://jsfiddle.net/Snedden27/9nnrt7hp/8/,
Моя проблема функция drawHexAround (цент) // строка 41, функция предположим, нарисовать шестиугольник вокруг шестиугольника с Centroid «@cent»
Вот условие проверки:
if (!contains(drawnCentroids,centroidNew)) {
makeHex(centroidNew);
drawnCentroids.push(centroidNew);
}
и вот функ Тион
function contains(a, obj) {
var l = a.length;
for (var i=0;i<l;i++) {
// console.log(a[i],obj);
// console.log(a[i] === obj);
if (a[i] === obj) {
// console.log('true');
return true;
}
}
return false;
}
Он рисует шестиугольники в порядке, но он рисует поверх существующих шестиугольников, а также несмотря на меня проверка состояния с contains(a,obj)
Я не понимаю, почему это условие результат всегда верно, когда ясно, что в некоторых случаях должно приводить к ложному.
Ваша скрипка ничего не сделала (она была настроена на 'onload', а не' in head') - исправлено здесь: https://jsfiddle.net/9nnrt7hp/3/ – Jamiec