Size: a a a

JavaScript Noobs — сообщество новичков

2021 February 27

J

Jakhongir in JavaScript Noobs — сообщество новичков
Chris
Да всё то же самое, выкинул лишнее.
function f1(inp) {
   let en = Object.entries(inp);
   let keys = en.map(x => x[0])
   let ls = en.map(x => x[1].length);
   let total = ls.reduce((a,x) => a * x);
   let ar = keys.map(_ => 0);
   let al = keys.length;
   let results = [];
   for (let j = 0; j < total; j++) {
       let temp = {}
       for (let i = 0; i < al; i++) {
           if (ar[i] === ls[i]) {
               ar[i] = 0;
               if (i < al - 1) {
                   ar[i + 1]++;
               }
           }
           temp[keys[i]] = inp[keys[i]][ar[i]];
       }
       results.push(temp);
       ar[0]++;
   }
   return results;
}

Можно было изначальные инициализации одним циклом по ключам сделать, но оно погоды особо не делает, плюс-минус пара микросекунд
upd: поправил очепятку
я запустил до исправления и отработал норм))
источник

C

Chris in JavaScript Noobs — сообщество новичков
Там был выход за границы массива, не влияющий на результат
источник

S

System404 in JavaScript Noobs — сообщество новичков
Chris
Да всё то же самое, выкинул лишнее.
function f1(inp) {
   let en = Object.entries(inp);
   let keys = en.map(x => x[0])
   let ls = en.map(x => x[1].length);
   let total = ls.reduce((a,x) => a * x);
   let ar = keys.map(_ => 0);
   let al = keys.length;
   let results = [];
   for (let j = 0; j < total; j++) {
       let temp = {}
       for (let i = 0; i < al; i++) {
           if (ar[i] === ls[i]) {
               ar[i] = 0;
               if (i < al - 1) {
                   ar[i + 1]++;
               }
           }
           temp[keys[i]] = inp[keys[i]][ar[i]];
       }
       results.push(temp);
       ar[0]++;
   }
   return results;
}

Можно было изначальные инициализации одним циклом по ключам сделать, но оно погоды особо не делает, плюс-минус пара микросекунд
upd: поправил очепятку
С телефона код тяжко читать, но если я правильно понял, можно ещё от одного копирования избавиться
источник

IE

Igor' Ember in JavaScript Noobs — сообщество новичков
Danila
Мне нравится. Альтернатива - цсс модули или css in js
У тебя есть класс
.someBlock__some-element_toggled-up
Этот класс ты видишь первый раз в жизни

В цсс это выглядит как
.someBlock {
 ... куча разного кода
   &__some-element {
        ... описание логики элеметнта
       &_toggled-up {
        ... состояние
        }
    }
}
Этот класс тебе нужно найти через поиск, его название someBlock слишком дженерек и ничего не говорит о том, где его искать. В хтмл полное название тоже не встречается, а динамически генериться из кусков.
Твои действия?
источник

C

Chris in JavaScript Noobs — сообщество новичков
grep someBlock find . -name "*.scss"
источник

C

Chris in JavaScript Noobs — сообщество новичков
тг кавычки съел
источник

D

Danila in JavaScript Noobs — сообщество новичков
Igor' Ember
У тебя есть класс
.someBlock__some-element_toggled-up
Этот класс ты видишь первый раз в жизни

В цсс это выглядит как
.someBlock {
 ... куча разного кода
   &__some-element {
        ... описание логики элеметнта
       &_toggled-up {
        ... состояние
        }
    }
}
Этот класс тебе нужно найти через поиск, его название someBlock слишком дженерек и ничего не говорит о том, где его искать. В хтмл полное название тоже не встречается, а динамически генериться из кусков.
Твои действия?
Что
источник

D

Danila in JavaScript Noobs — сообщество новичков
Какие-то интересные сценарии
источник

C

Chris in JavaScript Noobs — сообщество новичков
где его надо найти, в ксс? в хтмл?
источник

D

Danila in JavaScript Noobs — сообщество новичков
Я даже не понял чё сделать надо
источник

IE

Igor' Ember in JavaScript Noobs — сообщество новичков
Ну и ещё кое что
Нужно описать логику компонента и накинуть на него состояние. В итоге выглядить это будет так
<div 
 class="
    some-block__some-element
    some-block__some-element_active
    some-block__some-element_highlighted
  "
> agree  </div>

Этот див - маленькая конка. Как ощущения от лесенки из классов? Ничего не напрягает?
источник

IE

Igor' Ember in JavaScript Noobs — сообщество новичков
Chris
grep someBlock find . -name "*.scss"
очень удобно, спасибо (нет)
источник

IE

Igor' Ember in JavaScript Noobs — сообщество новичков
Danila
Какие-то интересные сценарии
постоянно с этим сталкиваюсь, когда вижу класс и его искать по проекту нужно.
источник

D

Danila in JavaScript Noobs — сообщество новичков
Igor' Ember
постоянно с этим сталкиваюсь, когда вижу класс и его искать по проекту нужно.
Видишь где?
источник

IE

Igor' Ember in JavaScript Noobs — сообщество новичков
Chris
где его надо найти, в ксс? в хтмл?
где угодно, лишь бы понять, что это именно он и чтобы с ним работать можно было
источник

D

Danila in JavaScript Noobs — сообщество новичков
Ctrl+shift+f  если что
источник

IE

Igor' Ember in JavaScript Noobs — сообщество новичков
Danila
Видишь где?
в дев тулзах браузера.
источник

D

Danila in JavaScript Noobs — сообщество новичков
И при чем тут бэм?
источник

IE

Igor' Ember in JavaScript Noobs — сообщество новичков
Danila
Ctrl+shift+f  если что
из-за того, что ты разбил класс по бему, как раз таки обычный поиск по файлам работать не будет, оно же у тебя на куски порезано.
источник

D

Danila in JavaScript Noobs — сообщество новичков
Igor' Ember
из-за того, что ты разбил класс по бему, как раз таки обычный поиск по файлам работать не будет, оно же у тебя на куски порезано.
Это претензия к scss а не к бэму
источник