Найдите наибольшее число в таблице - PullRequest
0 голосов
/ 23 октября 2018

У меня есть таблица на моей веб-странице Wordpress.Я хочу найти самую высокую, самую низкую и среднюю цену в этой таблице.Проблема в том, что цены указаны в <span> с классом.(См. Пример по следующей ссылке)

http://jsfiddle.net/c69uf1xt/

<tr>
<td>Product 1</td>
<td>01-12-2018</td>
<td class="wpt_price" id="price_value_id_1306" data-price_html="
<del>
<span class=&quot;woocommerce-Price-amount amount&quot;>
<span class=&quot;woocommerce-Price-currencySymbol&quot;>€</span>10.00</span>
</del> 
 <ins>
 <span class=&quot;woocommerce-Price-amount amount&quot;>
  <span class=&quot;woocommerce-Price-currencySymbol&quot;>€</span>7.00</span>
</ins>
 "> 
<span class="wpt_product_price">
<del>
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">€</span>10.00</span>
</del> 
<ins>
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">€</span>7.00</span>
</ins></span>
</td>
</tr>
<tr>

Есть ли способ найти эти числа с помощью Javascript или это слишком сложно, чтобы просить?

Я надеюсь услышать от вас.

1 Ответ

0 голосов
/ 23 октября 2018

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

var pricesarray = document.getElementsByTagName("ins");
var prices = [];

for(index = 0;index<pricesarray.length;++index){
    prices.push(parseFloat(pricesarray[index].innerText.replace("€","")));
}

Затем получите наибольшее и наименьшее числа

var highest = Math.max.apply(Math,prices ); 
var lowest = Math.min.apply(Math,prices );

для среднего значения, которое нам нужно уменьшить, и напишите функцию для уменьшения массива всумма, затем разделите ее на длину массива

var sum = prices.reduce(add, 0);

function add(a, b) {
    return a + b;
}

var average = sum/prices.length;

И вот, у нас это есть.

> lowest 
4 
> highest 
11 
> average
7.333333333333333
...