Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция не видит переменные (https://javascript.ru/forum/misc/56100-funkciya-ne-vidit-peremennye.html)

рони 10.06.2015 18:56

Dark19,
не могу вам более помочь, стека не хватает )))

Dark19 10.06.2015 19:05

Цитата:

Сообщение от рони (Сообщение 374676)
Dark19,
не могу вам более помочь, стека не хватает )))

в смысле не хватает стека?
я немного по другому решил эту проблему, но причину точно так и не понял, нашел только где это происходит

рони 10.06.2015 19:11

Цитата:

Сообщение от Dark19
в смысле не хватает стека?

нет ресурсов чтоб осмыслить ваш код, какие были идеи, вам уже показал.

Dark19 10.06.2015 19:13

Цитата:

Сообщение от рони (Сообщение 374683)
нет ресурсов чтоб осмыслить ваш код, какие были идеи, вам уже показал.

эх, ладно, дальше сам буду, я просто с js недавно работаю, не понимаю многих вещей...

Dark19 13.06.2015 15:05

рони,
и все таки нужна Ваша помощь. Есть перебор точек по условию и нужно когда все точки уже перебрались, передать обьект в php. Я вроде бы логично делаю: проверяю если первый и второй цикл дошел до конца присваиваю переменной единицу
if ((e==points.length-1) && (f==points.length-1))
                                                    d=1;

а в самом цикле проверяю если переменная == 1, то посылаю данные
if(d==1){
                                                            console.log(pointsDistance);
                                                            $.ajax({
                                                                type: "POST",
                                                                url: "http://geotest/ajax.php",
                                                                data: { centerDist:centerDistance,pointDist:pointsDistance },
                                                                success: function(msg){
                                                                    $("#result").empty();
                                                                    $("#result").append(msg);
                                                                }
                                                            });

                                                        }
                                                    });
, но оно доходит до конца циклов и еще посылает кучу раз эти данные. Как сделать чтобы дошло до окончания перебора и один раз переслало обьект?

Вот весь кусок:

var pointsDistance = [],d=0;
                                    for(m=0;m<points.length;m++){
                                        //console.log(pointsDistance);

                                        for(n=0;n<points.length;n++){
                                            (function(e, f) {
                                                //проверяем ровняется ли центр первой точки с любой другой и не равна ли эта точка себе же и больше ли у нее идентификатор чем у найденой
                                                if((centerDistance[e]['center']==centerDistance[f]['center']) && (centerDistance[e]['point']!=centerDistance[f]['point'])
                                                    &&(centerDistance[e]['name']>centerDistance[f]['name']) ){
                                                    //рассчитываем растояние между найдеными точками одной зоны
                                                    ymaps.route([centerDistance[e]['point'], centerDistance[f]['point']]).then(function(router) {
                                                        var dist = Math.round(router.getLength() / 1000);

                                                        pointsDistance [e]= {
                                                            name: centerDistance[e]['name'] + centerDistance[f]['name'],
                                                            distance: dist,
                                                            center: centerDistance[e]['center'],
                                                            kmwin: centerDistance[e]['dist'] + centerDistance[f]['dist'] - dist
                                                        };
                                                        var route = router.getPaths();
                                                        route.options.set({ strokeWidth: 3, strokeColor: centerDistance[f]['color'], opacity: 0.5 });
                                                        myMap.geoObjects.add(route);
                                                        console.log(d);
                                                        if(d==1){
                                                            console.log(pointsDistance);
                                                            $.ajax({
                                                                type: "POST",
                                                                url: "http://geotest/ajax.php",
                                                                data: { centerDist:centerDistance,pointDist:pointsDistance },
                                                                success: function(msg){
                                                                    $("#result").empty();
                                                                    $("#result").append(msg);
                                                                }
                                                            });

                                                        }
                                                    });

                                                }                                                
                                                console.log(e,f);
                                                if ((e==points.length-1) && (f==points.length-1))
                                                    d=1;
                                            })(m, n)
                                        }
                                        n=0;
                                    }

рони 13.06.2015 15:27

Dark19,
немогу помочь, причину смотрите выше, проблема слабо локализована.


Часовой пояс GMT +3, время: 16:13.