Как назначить значение каждому элементу в упорядоченном списке с помощью Javascript - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь присвоить процент совпадения, например 90% Match, каждому из результатов поиска.

Я не нашел решений для написания функции на python, которая бы делала это, поэтому мне было интересно, есть ли способ создать некоторый код Javascript, который бы автоматически назначал случайное значение от 100 до 50% (в обратном порядке) для каждого элемента в упорядоченном списке (которые являются моими результатами поиска) на основе порядка списка по умолчанию (1,2,3,4 ..).

Быстрый пример HTML:

<ol class="ordered-list">

   <li class="list-item"><\li>  <!-- This item represent the 1st result -->
   <li class="list-item"><\li>  <!-- 2nd result -->
   <li class="list-item"><\li>  <!-- 3rd result -->
   <li class="list-item"><\li>  <!-- 4th result -->

   <!-- Etc... -->

<\ol>

Теперь окончательные ожидаемые результаты должны выглядеть примерно так:


- Title 1
  Description...
  *100% Match*

- Title 2
  Description...
  *92% Match*

- Title 3
  Description...
  *85% Match*

- Title 4
  Description...
  *56% Match*

Ps; Результаты поиска не все добавляются вручную, все они поступают из базы данных и индекса.

Есть идеи, как этого добиться?

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Эта часть предназначена для генерации случайного числа в диапазоне 75 - 100:

function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

Эта часть является примером кода, который вы можете использовать, вы можете сгенерировать элементы <li> какстолько, сколько строк вы получили из базы данных, изменив itemLength, и вы можете изменить содержимое элемента списка, заменив randomInt в listItem.appendChild(randomInt) на описание, которое вы хотели бы вставить туда.

<body>
    <ol id="listObject">

    </ol>
</body>

<script type="text/javascript">
    var orderedList = document.getElementById("listObject");
    var itemLength = 5; //REPLACE THIS WITH THE LENGTH OF THE ITEM LIST

    function getRandomInt(min, max) {
        min = Math.ceil(min);
        max = Math.floor(max);
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }

    var listItem; var randomInt;

    for (var i = 0; i < itemLength; i++){

        listItem = document.createElement("LI");
        randomInt = document.createTextNode(getRandomInt(50, 100).toString() + "%");
        listItem.appendChild(randomInt);
        orderedList.appendChild(listItem);
    }

</script>
0 голосов
/ 06 мая 2019

Вы можете использовать случайную библиотеку питона, чтобы получить случайную генерацию результатов.

import random

results_size = 4
scores = random.sample(range(50, 101), results_size)
scores.sort(reverse=True)
print(scores)

Пример выходных данных:

[93, 73, 68, 50]

Затем выполните итерацию списка результатов и присвойте его текущее значение текущему элементу списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...