Javascript 量角器:检查数据按日期排序

Javascript 量角器:检查数据按日期排序,javascript,angularjs,testing,protractor,end-to-end,Javascript,Angularjs,Testing,Protractor,End To End,我需要检查返回的数据是否按日期排序。我就是这样写的: it('should be sorted by date', function() { element.all(by.repeater('users in group.users')).then( function(users) { var lastUser = users[0].element(by.id('birth-date')).getText(); for (v

我需要检查返回的数据是否按日期排序。我就是这样写的:

it('should be sorted by date', function() {
    element.all(by.repeater('users in group.users')).then(
        function(users) {
            var lastUser = users[0].element(by.id('birth-date')).getText();
            for (var i = 1; i < users.length; ++i) {
                var currentUser = users[i].element(by.id('birth-date')).getText();
                expect(moment(currentApplication).format('MMM d, YYYY HH:mm')).toBeGreaterThan(moment(lastApplication).format('MMM d, YYYY HH:mm'));
                lastUser = currentUser;
            }
        }
    )
})

我做错了什么?currentUser和lastUser似乎是对象而不是文本…但我不确定原因。

使用获取所有出生日期的列表,将字符串列表转换为日期列表,并与同一数组的排序版本进行比较:

element.all(by.id('birth-date')).map(function (elm) {
    return elm.getText().then(function (text) {
        return new Date(text);
    });
}).then(function (birthDates) {
    // get a copy of the array and sort it by date (reversed)
    var sortedBirthDates = birthDates.slice();
    sortedBirthDates = sortedBirthDates.sort(function(date1, date2) {
        return date2.getTime() - date1.getTime()
    });

    expect(birthDates).toEqual(sortedBirthDates);
});

我对这个话题做了一个小调查。我的代码是:

element.all(by.id('birth-date')).map(function (elm) {
    return elm.getText();
}).then(function (birthDates) {
                var sortedbirthDates = birthDates.slice();                                                  
                sortedbirthDates = sortedbirthDates.sort(function compareNumbers(a, b) {                    
                                                              if (a > b) {
                                                                    return 1;
                                                              } });
        expect(birthDates).toEqual(sortedbirthDates);                                                        
    });
这里我们独立于值类型。我们可以将其用于数字、字符串和日期。

TS:
TS:
1) strArr = (elems) => elems.map(async elem => await elem.getText());
2) strToNum = (strArr) => strArr.map(Date.parse);
3) const ordering = {
      isASC: (data: number[]) => data.every((item, i, arr) => !i || arr[i-1] <= item),
      isDESC: (data: number[]) => data.every((item, i, arr) => !i || arr[i-1] >= item)
    }
OR
const ordering = {
      isASC: (data: number[]) => data.slice(1).every((item, i) => data[i] <= item),
      isDESC: (data: number[]) => data.slice(1).every((item, i) => data[i] >= item)
}
1) strArr=(elems)=>elems.map(异步elem=>await elem.getText()); 2) strToNum=(strArr)=>strArr.map(Date.parse); 3) 常数排序={ isASC:(数据:number[])=>数据。每个((项目,i,arr)=>!i|arr[i-1]数据。每个((项目,i,arr)=>!i|arr[i-1]>=项目) } 或 常数排序={ isASC:(数据:number[])=>data.slice(1).每((项目,i)=>data[i]数据.slice(1).每((项目,i)=>data[i]>=item) }
我得到了这个:TypeError:Object[Object Object]没有方法'all'@Jason oops,typo,fixed:)谢谢。我是新来的,所以语法对我很重要:)还有一个,现在得到这个:TypeError:Object[Object Object]也没有方法'sort',有反向排序吗?天哪!我试着用标准量角器方法对数组进行排序,结果太糟糕了!非常感谢
TS:
1) strArr = (elems) => elems.map(async elem => await elem.getText());
2) strToNum = (strArr) => strArr.map(Date.parse);
3) const ordering = {
      isASC: (data: number[]) => data.every((item, i, arr) => !i || arr[i-1] <= item),
      isDESC: (data: number[]) => data.every((item, i, arr) => !i || arr[i-1] >= item)
    }
OR
const ordering = {
      isASC: (data: number[]) => data.slice(1).every((item, i) => data[i] <= item),
      isDESC: (data: number[]) => data.slice(1).every((item, i) => data[i] >= item)
}