Кипарис Сумма двух массивов - PullRequest
1 голос
/ 30 мая 2020

enter image description here

привет всем, я хочу суммировать значения двух столбцов в кипарисовике.

Я объявил две переменные массива: количество и цену, и pu sh также все элементы столбцов. если я регистрирую количество cy.log (количество), он показывает все значения в массиве. но cy.log(quantity[1]) не работает. то же самое в массиве цен.

я не знаю, почему он не ведет себя как массив.

если я объявляю, a = [1,2,3,4,5,6] и затем cy.log(a[1]), он работает

Мне нужно суммировать оба массива. много подходов перепробовал.

var quantity =[]
var price =[]

cy.get('td:nth-child(10) > div > span:visible').each(($el, index, $list) => 
        {
            quantity.push(Number($el.text())).toFixed(4)

        })

        cy.get('td:nth-child(14) > div > span:visible').each(($el, index, $list) => 
        {  
            price.push(Number($el.text())).toFixed(4)
        })

     cy.log(quantity) // working
     cy.log(price) // working

     cy.log(quantity[1]) //not working
     cy.log(price[3])  //not working

     // this part is working:
        var a=[1,2,3,4,5,6]
        cy.log(a[3])

Ответы [ 2 ]

1 голос
/ 30 мая 2020

Вы можете установить оба значения массива в одном и том же then:

cy.get('tr').then(($trs) => {
    const price = [];
    const quantity = [];
    $trs.each((idx, $el) => {
        const value1 = Number(cy.$$($el).find(':nth-child(10)> div > span:visible').text());
        price.push(Number(value1.toFixed(4)));

        const value2 = Number(cy.$$($el).find(':nth-child(10)> div > span:visible').text());
        quantity.push(Number(value2.toFixed(4)));
    });

    const sum = price.map((p, index) => (p + quantity[index]).toFixed(2));
    cy.log('Price: ' + price);
    cy.log('Quantity: ' + quantity);
    cy.log('price[1]: ' + price[1]);
    cy.log('quantity[1]: ' + quantity[1]);
    cy.log('Sum = ' + sum);
});

Снимок экрана из моего теста:

enter image description here

Соответствующий Markup:

<table>
  <tr>
    <td>5.42342</td>
    <td>2.442</td>
    <td>6.767678</td>
    <td>6767.678</td>
  </tr>
  <tr>
    <td>7.6343543</td>
    <td>8.44</td>
    <td>84.554</td>
    <td>24</td>
  </tr>
</table>
0 голосов
/ 31 мая 2020

Большое спасибо. Я использовал для суммирования двух массивов, используя ниже. это работает.

model=[]
  lower=[]
    var squares = model.map((a, i) => a.toFixed(4) - lower[i].toFixed(4));

, но мой результат такой:

[0.01, 0.019999999999999997, 0.060000000000000005, 0.04, 0.09000000000000001, 0.019999999999999997, 0.08, 0.35, 0.12000000000000001, 0.07, 0.03].

как исправить с двумя десятичными точками

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