首页 > 解决方案 > How to filter array with text and numbers

问题描述

Im have an array ["mother", "34343", "brother", "11", "22" and i need to confirm that all numbers from this array is less then 35000. How i can do it? Should i filter it somehow and exclude all words and then do expect.to.be.below then 35000?

browser.waitUntil(() => {
    return  $$('[class="header-title"]').map((elem) => elem.isDisplayed()).length > 5;
}, { timeout: 10000, timeoutMsg:'5 users has not been displayed'});
const creatorName = [];
$$('[class="header-title"]').forEach(element => {
    creatorName.push(element.getText().toLowerCase());
})
    
creatorName.every((i) => expect(i).to.be.below("25000"))

标签: webdriver

解决方案


使用filterevery你可以实现它:

const allNumbersLess3500 = arr => {
    return arr.filter(e => !isNaN(e)).every(n => n < 35000);
}

allNumbersLess3500(["words", "12", "come", "35001", "to"]); // -> false
allNumbersLess3500(["dont", "12", "easy", "350", "me"]); // -> true

推荐阅读