Ответы пользователя по тегу JavaScript
  • Вопрос архитектуры фронтенда! что выбрать?

    nobodynoone
    @nobodynoone
    AngularJS
    Ответ написан
    Комментировать
  • Как понять этот код JavaScript начинающему кодеру?

    nobodynoone
    @nobodynoone
    Тут прикол в том, что ищется первая буква имени, когда эта буква находится, получаем длину имени и прибавляем к нему 1 (почему 1? вспомните про то, что все массивы начинаются не с 1, а с 0, отсюда и это прибавление). Вот с комментариями

    // Строка, где будем искать имя 
    var text = "Hey,my is Bobby!";
    // Само имя 
    var myName = "Bobby";
    // Сюда будет пихать буквы имени, которые извлечем из строки 
    var hits = [];
    
    // Начинаем цикл, который будет перебирать каждый символ, потому что length возвращает
    // количество символов в строке 
    for ( var i=0; i<text.length; i++ ) {
        // Такк как мы перебираем не буквы, а числа, поэтому мы получаем символ из строки text
        // передачей позиции символа. Если буква найдена, то продолжаем. 
        if(text[i]==='B'){
            // Вы не поняли, зачем и почему тут j=i, да потому что мы все еще продолжаем искать 
            // символы в той же самой строке, а так как мы этот символ уже нашли, то нету смысла
            // начинать все с самого начала, потому что это неправильно, так как если предположить, что
            //  у нас до этого был перебор посимвольно строки весом скажем, 100Гб, то вы сами можете
            //  понять, что нам незачем еще раз делать то, что мы уже сделали, поэтому мы просто 
            // присваиваем переменной j текущее значение и позицию i и создаем цикл который позволит
            // нам полностью "забрать" слово. Как? Опять же берем длину строки с именем и прибавляем
            // единицу (почему 1? вспомните про то, что все массивы начинаются не с 1, а с 0, отсюда 
            // и это прибавление). 
            for(var j = i; j < (myName.length + i); j++) {
                            // Отправляем букву в массив
    			hits.push(text[j]);
            }
        }
    }
    
    if (hits.length === 0) {
    	console.log("Your name wasn't found!");
    } else {
    	console.log(hits);
    }


    Проще просто нельзя :)
    Ответ написан
    1 комментарий
  • Как написать метод, чтобы вернул нужный ответ?

    nobodynoone
    @nobodynoone
    Читайте про асинхронное и синхронное программирование в javascript.

    answers = {
            answer = '';
    };
    
    checkID: function(id) {
            this.db.transaction(function (tx) {
                tx.executeSql("SELECT * FROM black WHERE id = ?", [id], function(tx,result){
                        if (result.rows.length > 0) {
                            //document.querySelector('#status').innerHTML += '<p>' + result.rows.item(0).link; + '</p>';
                            answers.answer = {"id": result.rows.item(0).id, "link":result.rows.item(0).link};
                        } else {
                            //document.querySelector('#status').innerHTML += '<p>Не найдено</p>';
                            answers.answer = {"clean": true};
                        }
                    },
                    function (tx, err) {
                        console.log(err);
                    }
                );
            });
        },


    Вот отличный пост на эту тему stackoverflow.com/questions/14220321/how-to-return...
    Ответ написан
  • Почему код не работает ?

    nobodynoone
    @nobodynoone
    Потому что когда вы обращаетесь с параметром 'stop', то вы все равно запускаете бесконечный цикл и естественно скрипт до проверки на start=='stop' не доходит.

    Вам нужно создать общий элемент и 2 функции для старта и стопа. Подробнее и даже с примерами на стеке вот по этой ссылочке.
    Ответ написан
    Комментировать