File tree Expand file tree Collapse file tree
lib/node_modules/@stdlib/stats/iter/variance Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -38,23 +38,26 @@ function createIterator( arr ) {
3838
3939 it = { } ;
4040 it . next = next ;
41+ it . reset = reset ;
4142
4243 return it ;
4344
4445 function next ( ) {
4546 i += 1 ;
46- if ( i < len - 1 ) {
47+ if ( i < len ) {
4748 return {
4849 'value' : arr [ i ] ,
4950 'done' : false
5051 } ;
5152 }
52- i = - 1 ; // reset index
5353 return {
54- 'value' : arr [ len - 1 ] ,
5554 'done' : true
5655 } ;
5756 }
57+
58+ function reset ( ) {
59+ i = - 1 ;
60+ }
5861}
5962
6063
@@ -73,6 +76,7 @@ bench( pkg, function benchmark( b ) {
7376 if ( isnan ( v ) ) {
7477 b . fail ( 'should not return NaN' ) ;
7578 }
79+ arr . reset ( ) ;
7680 }
7781 b . toc ( ) ;
7882 if ( isnan ( v ) ) {
Original file line number Diff line number Diff line change 2121// MODULES //
2222
2323var isIteratorLike = require ( '@stdlib/assert/is-iterator-like' ) ;
24- var hasOwnProp = require ( '@stdlib/assert/has-own-property' ) ;
2524var isNumber = require ( '@stdlib/assert/is-number' ) . isPrimitive ;
2625var incrvariance = require ( '@stdlib/stats/incr/variance' ) ;
2726var format = require ( '@stdlib/string/format' ) ;
@@ -64,14 +63,14 @@ function itervariance( iterator, mean ) {
6463 }
6564 while ( true ) {
6665 v = iterator . next ( ) ;
66+ if ( v . done ) {
67+ break ;
68+ }
6769 if ( typeof v . value === 'number' ) {
6870 acc ( v . value ) ;
69- } else if ( hasOwnProp ( v , 'value' ) ) {
71+ } else {
7072 acc ( NaN ) ;
7173 }
72- if ( v . done ) {
73- break ;
74- }
7574 }
7675 return acc ( ) ;
7776}
You can’t perform that action at this time.
0 commit comments