Skip to content

Commit 0956d9e

Browse files
committed
Refactor to ignore iterator return value
1 parent a9a1367 commit 0956d9e

2 files changed

Lines changed: 11 additions & 8 deletions

File tree

lib/node_modules/@stdlib/stats/iter/variance/benchmark/benchmark.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff 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 ) ) {

lib/node_modules/@stdlib/stats/iter/variance/lib/main.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
// MODULES //
2222

2323
var isIteratorLike = require( '@stdlib/assert/is-iterator-like' );
24-
var hasOwnProp = require( '@stdlib/assert/has-own-property' );
2524
var isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;
2625
var incrvariance = require( '@stdlib/stats/incr/variance' );
2726
var 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
}

0 commit comments

Comments
 (0)