Показать сообщение отдельно
  #1182 (permalink)  
Старый 28.06.2015, 14:53
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Как записать компактней, но чтобы читаемость кода сохранилась?
/**
 * @returns {Array.<Node>}
 * @private
 */
__getChildren() {
    var matrix = this[__MATRIX];
    var {width, height} = matrix.getSizes();
    var vector = matrix.findCellVector(cell => !isNumber(cell));
    var children = [];
    if (vector[0] !== 0) {
        let matrixClone = Matrix.clone();
        let vectorClone = vector.clone();
        vectorClone[0] -= 1;
        matrixClone.swapCells(vector, vectorClone);
        children.push(new Node({matrix: matrixClone}));
    }
    if (vector[0] !== width - 1) {
        let matrixClone = Matrix.clone();
        let vectorClone = vector.clone();
        vectorClone[0] += 1;
        matrixClone.swapCells(vector, vectorClone);
        children.push(new Node({matrix: matrixClone}));
    }
    if (vector[1] !== 0) {
        let matrixClone = Matrix.clone();
        let vectorClone = vector.clone();
        vectorClone[1] -= 1;
        matrixClone.swapCells(vector, vectorClone);
        children.push(new Node({matrix: matrixClone}));
    }
    if (vector[1] !== height - 1) {
        let matrixClone = Matrix.clone();
        let vectorClone = vector.clone();
        vectorClone[1] += 1;
        matrixClone.swapCells(vector, vectorClone);
        children.push(new Node({matrix: matrixClone}));
    }
    return children;
}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 28.06.2015 в 14:57.
Ответить с цитированием