- 1
http://pastebin.com/xww1EKP1
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
http://pastebin.com/xww1EKP1
http://map.vmr.gov.ua/scripts/__RasPil.js - было тут
0
function * getTreePost(postsInfo, id) {
var parent = _.filter(postsInfo, function (item) {
return Boolean(item._id == id);
});
var children = _.filter(postsInfo, function (item) {
return Boolean(item.parentId);
});
return _.union(parent, findChildren(id, children));
function findChildren(parentId) {
if (parentId) {
var data = _.where(children, {parentId: parentId});
var ret = [];
if (data.length) {
_.each(data, function (item, index) {
var data_r = findChildren(item._id);
if (data_r.length) {
ret = _.union(data_r, ret);
}
});
return _.union(data, ret);
} else
return [];
} else return [];
}
}
обычная рекурсия
0
function saveQuestion() {
var questionContent = {};
var questionResult = {};
switch(questionFields.attr('class')) {
case 'check-question':
questionResult.text = questionFields.children('.question-text')[0].innerText;
questionResult.type = 'check';
questionResult.answers = [];
[].forEach.call(questionFields.children('.answer-preview'), function(answerElement, i, arr) {
var answer = {};
answer.text = $(answerElement).children('.answer-text')[0].innerText;
answer.right = ($(answerElement).children('.answer-check')[0].checked) ? 1 : 0;
answer.weight = (!answer.right) ? $(answerElement).children('.answer-weight')[0].getPosition() : 1;
answer.weight = (answer.weight > 0 && answer.weight <= 1) ? answer.weight : 0;
questionResult.answers.push(answer);
});
if (checkQuestionCorrect(questionResult)) {
questionResult= JSON.stringify(questionResult);
questionContent = JSON.parse(questionResult); //клонируем объект
[].forEach.call(questionContent.answers, function(answer, i, answers) { delete answer.right; delete answer.weight; });
questionContent = JSON.stringify(questionContent);
console.log('result: ' + questionResult);
console.log('content: ' + questionContent);
net.addQuestion(loID, questionContent, questionResult, function(r){
$('.add-question').slideUp(200, function(){
$('.add-question-row').remove();
openLOPreview(loID);
});
});
}
break;
case 'input-question':
var highlights = highlighter.highlights;
questionResult.type = 'input';
questionResult.text = $('#question-text-area').get(0).innerText;
questionResult.answers = [];
for (i = 0; i < highlights.length; i++) {
var answer = {};
answer.id = highlights[i].id;
answer.posStart = highlights[i].characterRange.start;
answer.posEnd = highlights[i].characterRange.end;
answer.text = highlights[i].answerText;
answer.strict = ('strict' in highlights[i]) ? highlights[i].strict : true;
questionResult.answers.push(answer);
}
questionResult.answers.sort(function(a, b){ return a.posStart - b.posStart; });
questionResult.serializedHighlight = highlighter.serialize();
questionResult = JSON.stringify(questionResult);
questionContent = JSON.stringify(questionContent);
net.addQuestion(loID, questionContent, questionResult, function(r){
$('.add-question').slideUp(200, function(){
$('.add-question-row').remove();
openLOPreview(loID);
});
});
break;
default: break;
}
}
Моя дипломная работа по теме "тестирование студентов". Конструктор тестов, обработчик кнопки сохранения вопроса. Используются библиотеки jQuery и Rangy (для работы с выделением текста).
+4
while (st.indexOf(" ") != -1)
st = st.replace(" ", " ");
0
/**
* Static Content Helpers
*/
(function (window, ng, app) {
app.service('$StaticContentHelpers', function () {
var instance = null;
/**
* Конструктор хелперов
*
* @returns {Object} Функции-хелперы
* @constructor
*/
function Init () {
/**
* Обертка для статического контента,
* добавляет static домен, который пришел с бэкенда
*
* @param {String} url Урл, к которому необходимо добавить домен для статики
*
* @return {String} Готовый абсолютный url для статического контента
*/
function wrapStaticContent (url) {
// Проверим, от корня ли путь
return window.currentStaticDomain + ((/(^\/)/.test(url)) ? '' : '/') + url;
}
return {
wrapStaticContent: wrapStaticContent
}
}
function getInstance () {
if (!instance) {
instance = new Init();
}
return instance;
}
return {
getInstance: getInstance
};
});
}(window, angular, mainModule));
гуру паттернов..
+5
$(document).on('click', 'a.switcher_link', function(e) {
e.preventDefault();
var btn = $(this);
$.getJSON(btn.attr('href'), {type: 'json'}, function(data) {
btn.parent().parent().parent().parent().parent().parent().parent().parent().replaceWith(data.data);
});
});
Нашел и ахуел....
+4
$ nodejs
> var buffer = new ArrayBuffer(2);
undefined
> var uint16View = new Uint16Array(buffer);
undefined
> var uint8View = new Uint8Array(buffer);
undefined
> uint16View[0]=0xff00
65280
> uint8View[1]
255
> uint8View[0]
0
https://developer.mozilla.org/en/docs/Web/JavaScript/Typed_arrays
endianness - теперь и в жабаскрипте. Почти как union
−2
this.params.IsCellEditable = function(rowNumber, cellNumber) {
cellNumber == 1;
this.params.ButtonList = this.params.ButtonList.filter(b=>b[0] === "OnRefresh");
let textContr = new CTextArea('textContr');
textContr.SourceName = "value";
textContr.ViewName = "Params";
textContr.ComEdit = true;
this.params.arrEditObj[1] = textContr;
}
Найдено в нашем проекте в старом модуле, в авторстве никто не признаётся.
Во-первых, строка 2 бессмысленна. Во-вторых, всё последующее имело бы хоть какой-то смысл _вне_ этой функции, а внутри уже на строке 3 выкидывает ошибку, потому что контекст там и есть this.param из первой строчки. В-третьих, строка 3 призвана выкидывать из тулбара виджета this.param все кнопки, кроме OnRefresh, но на самом деле она там только одна и есть. В-четвёртых, строчки 7 и 8 просто лишние (ну, это из логики используемого в проекте движка следует). В-пятых, из названия метода можно предположить (и это действительно так), что он должен бы возвращать булевское значение, но он всегда возвращает только undefined и, таким образом, все ячейки виджета оказываются нередактируемыми — что совсем лишает смысла создание контрола для редактирования в строках 5—9.
Редкостная бредятина. Кто-то в полном затмении писал, и даже десяти секунд не потратил на тестирование.
0
function floatToStringPrec(f, precisionDigits)
{
var PRECISION = Math.pow(10, precisionDigits);
var integerPart = Math.floor(f);
var fractionalPart = f % 1;
if (fractionalPart == 0)
{
return integerPart.toString();
}
var zeroesInFracPart = -Math.log10(fractionalPart);
if (Math.floor(zeroesInFracPart) == zeroesInFracPart)
{
zeroesInFracPart--;
}
else
{
zeroesInFracPart = Math.floor(zeroesInFracPart);
}
fractionalPart = Math.round(fractionalPart * PRECISION);
while (fractionalPart % 10 == 0)
{
fractionalPart /= 10;
}
var zeroes = '';
if (zeroesInFracPart > 0)
{
zeroes = Array(zeroesInFracPart + 1).join('0');
}
return integerPart.toString() + '.' + zeroes + fractionalPart.toString();
}
Преобразовать плавающего питуха в строку; сохранить не более precisionDigits цифр после запятой (остальные - округлить).
0
var routers = new (R(views))();
Чет по другому не придумал как в роутер view передать