Ну, сначала вы должны разобрать строку JSON, чтобы вы могли легко получить доступ к ее членам:
var arr = $.parseJSON(str);
Используйте метод map
для извлечения значений:
arr = $.map(arr, function(o){ return o.y; });
Затем вы можете использовать массив в методе max
:
var highest = Math.max.apply(this,arr);
Или как однострочный:
var highest = Math.max.apply(this,$.map($.parseJSON(str), function(o){ return o.y; }));
Вы лучше наблюдаете этот https://codecraft.tv/courses/angular/unit-testing/asynchronous /
, у Вас есть на самом деле 3 пути:
1) используют регулярный это:
it('test', (done) => {
const spy = spyOn(func, 'bar').and.returnValue(Promise.resolve(true));
spy.calls.mostRecent().returnValue.then(res => {
...your expect here...
done();
})
} );
2) используют асинхронный в beforeEach и этом:
it('test', async(() => {
spyOn(func, 'bar').and.returnValue(Promise.resolve(true));
fixture.whenStable().then(res => {
...your expect here...
})
} ));
3) использование fakeAsync, если у Вас нет вызовов Http или XHR:
it('test', fakeAsync(() => {
spyOn(func, 'bar').and.returnValue(Promise.resolve(true));
tick();
...your expect here...
} ));