Как правильно записать алгоритм на JS

180
11 января 2019, 02:00

подскажите как правильно записать алгоритм без переменной 'pro'.

let j = 0,
        pro = true,
        len_j = this.multi.length;
        for(;len_j>j;j++){
           if(this.multi[j].key){
              pro = false;
              break;
           }
        }
        if(pro){
          this.multi.push({name:"Показать все", series:[]})
        }
Answer 1

Из примера понятно только это - если есть хоть один ненулевой ключ "key", то ничего не делаем, иначе добавляем в массив элемент.

var arrEmpty = [ { key: null }, { } ], 
        arr = [ { key: null }, { key: 1 } ]; 
 
function isKey ( k ) { 
    return this.every( el => !el[k] ) ? ( this.push( { oops: 'oops' } ), true ) : false; 
} 
 
console.log( isKey.call( arrEmpty, 'key' ), arrEmpty ); // true,  [ { key: null }, {}, { oops: 'oops' } ] 
console.log( isKey.call( arr, 'key' ), arr );           // false, [ { key: null }, { key: 1 } ]

Answer 2

В приведенном коде проверяется наличие в массиве элемента, с определенным значением ключа.

Для проверки можно использовать метод some

Например:

if(!this.multi.some(el=>el.key)){
    this.multi.push({name:"Показать все", series:[]});
}
READ ALSO
Получить кириллический домен

Получить кириллический домен

Есть сайт (пример) - http://з-саюоыжаѓхнцчрф, но если перейти на него и получить url с помощью window

165
Объект проходит через коллизию при большой скорости

Объект проходит через коллизию при большой скорости

Делаю игру с видом сверхуДелаю так чтобы мышка не выходила за камеру

168
Как получить координаты курсора секунду назад?

Как получить координаты курсора секунду назад?

Это нужно для того, чтобы при смещении курсора влево запускалась одна анимация, при смещении курсора вправо - другая, если координаты остались...

148