Задать вопрос
  • Как нарисовать ёлку вложенным циклом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    for r in range(x):
      print(' ' * (x - r - 1), '#' * (r * 2 + 1), sep='')
    Ответ написан
    Комментировать
  • Как нарисовать ёлку вложенным циклом?

    Maksim_64
    @Maksim_64
    Data Analyst
    height = int(input('Введите высоту '))
    for i in range(1,height+1):
        print(f'{"#"*(i*2-1):^{height * 2}}')
    Ответ написан
    Комментировать
  • Как фильтровать массив в массиве методом filter?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Для начала вам нужно реализовать и понять сам алгоритм вашей задачи. Попробуйте расписать ручкой его на бумажке - что, как и в какой момент происходит. Реализуйте его в коде на простом цикле. Разберитесь в потоках управления и данных - что, куда и когда направляется. И вот уже с этим пониманием приступайте к реализации задачи с использованием требуемого метода и тогда у вас всё получится легко и просто.
    Ответ написан
    2 комментария
  • Как посчитать количество пересечений с помощью метода filter?

    @historydev Куратор тега JavaScript
    Редактирую файлы с непонятными расширениями
    Считаем множественное вхождение букв:
    const newWord = 'JavaScript';
    
    let glas = ['a','e','i','o','u'];
    
    const lettersCount = (word, letters) =>
      word.toLowerCase().split('').reduce((a, l) => (letters.includes(l) && (a[l] = (a[l] ?? 0) + 1), a), {});
    
    console.log(lettersCount(newWord, glas));


    P.S: Если нужно считать буквы в разном регистре отдельно, требуются изменения.
    Ответ написан
    Комментировать
  • Как посчитать количество пересечений с помощью метода filter?

    IvanU7n
    @IvanU7n
    nothing interesting here
    const as = (where, what) => what.filter(v => where.includes(v)).length;


    не слишком «просто»? вопросов, что делает этот код, не будет?

    ПЛЮС: код выводит количество букв из what, один только Array.filter() не даст количества вхождений в where букв из what

    ПЛЮС2: то самое упрощение, дающее количество вхождений и где одним только Array.filter() не обойтись:
    const as = (where, what) => where.split('').filter(v => what.includes(v)).length;
    Ответ написан
    3 комментария
  • Как посчитать количество пересечений с помощью метода filter?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Решим задачу в общем виде - сделаем функцию, находящую количество совпадающих элементов у любых итерируемых объектов. Причём под совпадением будем понимать не обязательно непосредственное равенство (оставим это как вариант по умолчанию), а равенство некоторых производных значений. Так что к чёрту filter (а ещё Safari - говорят, яблочные уроды пока не реализовали поддержку методов итераторов; впрочем, сделать обычный for...of вместо reduce не проблема):

    function countIntersections(data1, data2, key = n => n) {
      const getKey = key instanceof Function ? key : n => n[key];
      const keys = new Set(Array.from(data2, getKey));
      return data1[Symbol.iterator]().reduce((acc, n) => acc + keys.has(getKey(n)), 0);
    }

    В вашем случае применять так: const result = countIntersections(newWord, glas);.

    Другие примеры использования:

    countIntersections(Array(7).keys(), Array(4).keys()) // 4
    countIntersections('abCdE', 'ACe', n => n.toLowerCase()) // 3
    countIntersections([ { id: 1 }, { id: 2 }, { id: 3 } ], [ { id: 3 } ], 'id') // 1
    Ответ написан
    Комментировать
  • Какая логика у перебора массива таким способом?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    i у нас 0. но сравнивается то arr[i], т.е arr[0]

    на 1 итерации будет 12 < 12 => false
    на 2 итерации будет 5 < 12 => true => min = 5
    на 3 итерации будет 8 < 5 => false
    на 4 итерации будет 20 < 5 => false
    на 5 итерации будет 3 < 5 => true => min = 3
    т.е. на 6 итерации будет 16 < 3 => false
    Ответ написан
    Комментировать
  • Какая логика у перебора массива таким способом?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    i — это индекс массива — номер позиции в нём, считая от 0.
    arr[i]значение, которое лежит в массиве arr в позиции i.
    ещё проще
    Массив представьте как ряд одинаковых коробочек, юпронумерованных от 0 до N.
    В коробочках что-то лежит. Обратиться к коробку можно по имени массива и номеру ячейки: arr[4] например – это пятая по счету коробка, т.к. счет идёт от 0.


    Последовательность получается примерно такая:
    min = 12;

    i = 0; arr[i] = 12; arr[i] меньше min? НЕТ. идём дальше
    i = i + 1
    i = 1; arr[i] = 5; arr[i] меньше min? ДА. min становится 5; идём дальше
    i = i + 1
    i = 2; arr[i] = 8; arr[i] меньше min? НЕТ. идём дальше
    i = i + 1
    ...
    i = 4; arr[i] = 3; arr[i] меньше min? ДА. min становится 3; идём дальше
    ...
    for закончил работу, min так и остался равным 3
    Ответ написан
    Комментировать