Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как расшифровать в JS строку зашифрованную в Python?

    что мешает перевести в PEM и расшифровать https://github.com/travist/jsencrypt ?
    зачем байты, если можно использовать строки?
    можно же сконвертирать в base64 https://docs.python.org/3.7/library/binascii.html
    Ответ написан
    Комментировать
  • Как сравнить от 4 объектов за раз и вернуть с наибольшим значением?

    Чтобы сравнить несколько объектов за раз вам необходимо хранить их в массиве, а не в отдельных переменных. При этом если важно иметь какую-то вспомогательную информацию (например название варианта ответа), в то в качестве элементов массива можно хранить объект с нужными свойствами.

    Набросал простой пример (требует ES6+).

    Представим, что вопрос это объект вида:
    var question = {
      'text': 'Текст вопроса',
      'answers': [
        {'name': 'X', 'text': 'Вариант X', 'value': 0},
        {'name': 'Y', 'text': 'Вариант Y', 'value': 0},
        {'name': 'Z', 'text': 'Вариант Z', 'value': 0}
      ]
    }


    потом пользователь что-то выбрал, мы отметили это в объекте с вопросом
    question.answers[1].value += 1; // выбрали Y (как второй элемент в массиве вариантов ответа)
    question.answers.find(answer => answer.name === 'Z').value += 1; // выбрали Z (нашли нужный элемент по имени)


    Теперь просто находим максимальное значение среди всех ответов
    var maxAnswerValue = Math.max(...question.answers.map(answer => answer.value), 0); // оно будет равно 1


    И формируем массив из ответов, у которых значение соответствует максимальному
    var result = question.answers.filter(answer => answer.value == maxAnswerValue);


    т.е. result у нас это
    [{'name': 'Y', 'text': 'Вариант Y', 'value': 1}, {'name': 'Z', 'text': 'Вариант Z', 'value': 1}]

    то мы можем вывести как названия, так и значения

    console.log('Выбранные ответы:');
    for (answer of result) {
        console.log(`${answer.text} (${answer.name}): ${answer.value}`);
    }
    
    Выбранные ответы:
    Вариант Y (Y): 1
    Вариант Z (Z): 1
    Ответ написан
    Комментировать