Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2014, 10:39
Новичок на форуме
Отправить личное сообщение для bazzjr Посмотреть профиль Найти все сообщения от bazzjr
 
Регистрация: 07.02.2014
Сообщений: 2

Оцените выполненную работу коллеги
Друзья, пожалуйста оцените работу коллеги и его результаты программирования на JS:
1. Есть ли грубые ошибки в построении кода?
2. Будут ли работать приведенные примеры функций?
3. Ваша общая оценка по 5 бальной шкале?

Сам код:
/*-------------------------------------------------- ЦИКЛЫ -----------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
/*outer:
for (var n = 2; n < 20; n++) {
    for (var i = 2; i < n; i++) {
        if (n % i ==0) continue outer;
    }
    alert(n);
}*/
  
  
  
/* ------------------------------------------------ SWITCH -----------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
/*var browser = 'Chrome';
  
switch (browser) {
    case 'IE':
        alert('О, да у вас IE!');
        break;
  
    case 'Chrome':
    case 'Firefox':
    case 'Safari':
    case 'Opera':
        alert('Да, и эти браузеры мы поддерживаем');
        break;
  
    default:
        alert('Мы надеемся, что и в вашем браузере все ок!');
}*/
  
  
  
/* ------------------------------------------------ ОБЪЕКТЫ ----------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
  
  
// перебор свойств объекта
// ________________________________________________________________________________
/*var user = {}
  
user.name = 'Vasya';
user.surname = 'Jolud';
user.name = 'Valera';
user.test = "test";
delete user.name;
  
for (var key in user) {
    console.log(key + ":" + user[key]);
}*/
  
  
  
// клонирование объекта
// ________________________________________________________________________________
/*function clone(obj) {
  var obj2 = {};
  
  // если свойства могут быть объектами, то нужно перебирать и их
  for(var key in obj) obj2[key] = obj[key];
  
  return obj2;
}
  
var user = { name: 'Вася' };
var admin = clone(user);
  
admin.name = 'Петя';
alert(user.name);*/
  
  
  
// проверка на отсутствие свойства
// ________________________________________________________________________________
/*if ("prop" in obj) {}
// или
if (obj.prop !== undefined) {}*/
  
  
  
// умножение свойств объекта
// ________________________________________________________________________________
// проверка на число
function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n)
}
  
/*var menu = {
    width: 200,
    height: 300,
    title: "My menu"
};
  
function multiplyNumeric(obj) {
    for (var key in obj) {
        if (isNumeric(obj[key])) obj[key] *= 2;
    }
}
  
multiplyNumeric(menu);*/
  
  
/* ----------------------------------------------- МАССИВЫ -----------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
  
// манипуляции с массивом
// ________________________________________________________________________________
/*var style = ['jazz', 'blues'];
  
style.push('rock-n-roll');
style[style.length - 2] = 'classic';
style.shift();
  
alert(style[0]);
  
style.unshift('rap, reggae');*/
  
  
  
// выбор рандомного значения массива
// ________________________________________________________________________________
/*var randomArr = [1, 'true', 'yeah', 'wtf', 1488, {'name' : 'upa'}];
  
function selectValArr(arr, min, max) {
    var rand = min + Math.floor( Math.random() * (max+1-min) );
  
    return arr[rand];
}
alert(selectValArr(randomArr, 0, 6));*/
  
  
  
// добавить в массив если число и сложить значения
// ________________________________________________________________________________
/*var numbers = [];
  
while (true) {
    var value = +prompt('vvedite chislo');
  
    if (!value) break;
  
    numbers.push(value);
}
  
var sum = 0;
  
for (var i = 0; i < numbers.length; i++) {
    sum += numbers[i];
}
  
alert(sum);*/
  
  
  
// ищет значение и его номер в массиве
// ________________________________________________________________________________
/*var randomArr = [ "test", 2, 1.5, false ];
  
function findVal(arr, val) {
    if (arr.indexOf) { // если метод существует
        return arr.indexOf(val);
    }
  
  
    for (var i = 0; i < arr.length; i++) {
        if (val === arr[i]) return i;
    }
  
    return -1;
}
  
alert(findVal(randomArr, false));*/
  
  
  
  
// фильтр в массиве
// ________________________________________________________________________________
/*var arr = [5, 4, 3, 8, 0];
var filtered = filterRange(arr, 1, 5);
  
function filterRange(arr, min, max) {
    var newArr =[];
  
    for (var i = 0; i < arr.length; i++) {
        if (min <= arr[i] && arr[i] <= max ) {
            newArr.push(arr[i]);
        }
    }
  
    return newArr;
}
  
alert(filtered);
alert(arr);*/
  
// +++++++++++++++++++++ link ++++++++++++++++++++++
// [url]http://learn.javascript.ru/array[/url]
  
  
  
// решето Эратосфена - найдем простые числа до n
// ________________________________________________________________________________
// шаг 1
/*var arr = [];
  
for (var i=2; i<100; i++) {
  arr[i] = true
}
  
// шаг 2
var p = 2;
  
do {
  // шаг 3
  for (i=2*p; i<100; i+=p) {
    arr[i] = false;
  }
  console.log(arr)
  
  // шаг 4
  for (i=p+1; i<100; i++) {
    if (arr[i]) break;
  }
  
  p = i;
} while (p*p < 100); // шаг 5
  
// шаг 6 (готово)
// посчитать сумму
var sum = 0;
for (i=0; i<arr.length; i++) {
  if (arr[i]) {
    sum += i;
  }
}
  
alert(sum);*/
  
  
  
/* -------------------------------------------- МАССИВЫ: МЕТОДЫ ------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
  
// уникальные элементы массива
// ________________________________________________________________________________
  
/*function unique(arr) {
  var obj = {};
  var result = [];
  
  nextInput:
  for(var i=0; i<arr.length; i++) {
    var str = arr[i]; // для каждого элемента
  
    for(var j=0; j<result.length; j++) { // ищем, был ли он уже?
      if (result[j] == str) continue nextInput; // если да, то следующий
    }
  
    result.push(str);
  }
  
  return result;
}
  
var string = ['oops', 'poops', 'oops', 'wtf', 'ftw', '8-()', 'o|o', 'wtf'];
  
alert(unique(string));*/
  
// лучший вариант
  
/*function unique(arr) {
    var obj = {};
  
    for(var i=0; i<arr.length; i++) {
        var str = arr[i];
  
        obj[str] = true; // запомнить строку в виде свойства объекта
    }
  
    return Object.keys(obj); // или собрать ключи перебором для IE<9
}
  
var string = ['oops', 'poops', 'oops', 'wtf', 'ftw', '8-()', 'o|o', 'wtf'];
  
alert( unique(strings) );*/
  
  
  
// добавление уникального класса в свойство объекта
// ________________________________________________________________________________
/*var obj = {
    className: 'new open'
}
  
function addClass(obj, cls) {
    var classes = obj.className ? obj.className.split(' ') : [];
  
    for (var i = 0; i < classes.length; i++) {
        if (cls == classes[i]) return;
    }
  
    classes.push(cls);
    obj.className = classes.join(' ');
}
addClass(obj, 'popup');
addClass(obj, 'new');
addClass(obj, 'open');
addClass(obj, 'open2');
alert(obj.className);*/
  
  
  
// camelCase
// ________________________________________________________________________________
/*function camelize(str) {
  var arr = str.split('-');
  
  for(var i=1; i<arr.length; i++) {
    // преобразовать: первый символ с большой буквы
    arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
  }
  
  return arr.join('');
}
alert(camelize('background-color'));*/
  
  
  
// +++++++++++++++++++++ link ++++++++++++++++++++++
//http://learn.javascript.ru/array-methods
  
  
/* ------------------------------------------------ РЕКУРСИЯ ---------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
/* -------------------------------------------------------------------------------------------------------*/
  
/*function sum(n) {
    return (n != 1) ? n + sum(n-1): 1;
}
  
alert(sum(100));*/
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2014, 11:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

bazzjr,
251 уникальные элементы массива --- скорее убрать дубликаты и опечатка в 292 строке
Ответить с цитированием
  #3 (permalink)  
Старый 07.02.2014, 11:25
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от bazzjr
for(var key in obj) { ... }
я обычно внутри такого цикла делаю проверку hasOwnProperty - вдруг что-нибудь добавлялось в Object.prototype
Ответить с цитированием
  #4 (permalink)  
Старый 07.02.2014, 13:51
Новичок на форуме
Отправить личное сообщение для bazzjr Посмотреть профиль Найти все сообщения от bazzjr
 
Регистрация: 07.02.2014
Сообщений: 2

Т.е. вообщем функции работоспособные и человек можно сказать нормально шарит в JS?
Ответить с цитированием
  #5 (permalink)  
Старый 07.02.2014, 14:08
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

camelize просто ужасна

Сообщение от bazzjr Посмотреть сообщение
Т.е. вообщем функции работоспособные и человек можно сказать нормально шарит в JS?
ну... да

Последний раз редактировалось melky, 07.02.2014 в 14:10.
Ответить с цитированием
  #6 (permalink)  
Старый 07.02.2014, 20:42
Аватар для Cuntmann
Аспирант
Отправить личное сообщение для Cuntmann Посмотреть профиль Найти все сообщения от Cuntmann
 
Регистрация: 26.01.2014
Сообщений: 78

не палите контору
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как найти работу? goshala Работа 28 09.01.2017 22:59
Ищу удаленную работу javascript PeaceCoder Работа 2 09.08.2012 18:05
Как узнать, завершила ли свою работу рекурсивная функция Ajax Общие вопросы Javascript 4 13.05.2009 14:50