@stdlib/iter-to-array-view 0.0.3 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +1 -1
- package/README.md +53 -6
- package/docs/types/index.d.ts +2 -2
- package/lib/main.js +5 -7
- package/package.json +6 -3
- package/CHANGELOG.md +0 -5
package/NOTICE
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Copyright (c) 2016-
|
|
1
|
+
Copyright (c) 2016-2022 The Stdlib Authors.
|
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ limitations under the License.
|
|
|
20
20
|
|
|
21
21
|
# iterator2arrayview
|
|
22
22
|
|
|
23
|
-
[![NPM version][npm-image]][npm-url] [![Build Status][test-image]][test-url] [![Coverage Status][coverage-image]][coverage-url] [![dependencies][dependencies-image]][dependencies-url]
|
|
23
|
+
[![NPM version][npm-image]][npm-url] [![Build Status][test-image]][test-url] [![Coverage Status][coverage-image]][coverage-url] <!-- [![dependencies][dependencies-image]][dependencies-url] -->
|
|
24
24
|
|
|
25
25
|
> Fill an array-like object view with values returned from an iterator.
|
|
26
26
|
|
|
@@ -132,9 +132,9 @@ var arr = iterator2arrayview( iter, new Float64Array( 4 ), fcn );
|
|
|
132
132
|
|
|
133
133
|
The invoked function is provided three arguments:
|
|
134
134
|
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
135
|
+
- **value**: iterated value.
|
|
136
|
+
- **index**: destination index.
|
|
137
|
+
- **n**: iteration count (zero-based).
|
|
138
138
|
|
|
139
139
|
```javascript
|
|
140
140
|
var Uint8Array = require( '@stdlib/array-uint8' );
|
|
@@ -183,6 +183,7 @@ var count = ctx.count;
|
|
|
183
183
|
## Notes
|
|
184
184
|
|
|
185
185
|
- Iteration stops when an output array view is full **or** an iterator finishes; whichever comes first.
|
|
186
|
+
- The function supports output array-like objects having getter and setter accessors for array element access (e.g., [`@stdlib/array/complex64`][@stdlib/array/complex64]).
|
|
186
187
|
|
|
187
188
|
</section>
|
|
188
189
|
|
|
@@ -229,6 +230,22 @@ for ( i = 0; i < arr.length; i++ ) {
|
|
|
229
230
|
|
|
230
231
|
<!-- /.references -->
|
|
231
232
|
|
|
233
|
+
<!-- Section for related `stdlib` packages. Do not manually edit this section, as it is automatically populated. -->
|
|
234
|
+
|
|
235
|
+
<section class="related">
|
|
236
|
+
|
|
237
|
+
* * *
|
|
238
|
+
|
|
239
|
+
## See Also
|
|
240
|
+
|
|
241
|
+
- <span class="package-name">[`@stdlib/array/from-iterator`][@stdlib/array/from-iterator]</span><span class="delimiter">: </span><span class="description">create (or fill) an array from an iterator.</span>
|
|
242
|
+
- <span class="package-name">[`@stdlib/array/to-view-iterator`][@stdlib/array/to-view-iterator]</span><span class="delimiter">: </span><span class="description">create an iterator from an array-like object view.</span>
|
|
243
|
+
- <span class="package-name">[`@stdlib/iter/to-array-view-right`][@stdlib/iter/to-array-view-right]</span><span class="delimiter">: </span><span class="description">fill an array-like object view from right to left with values returned from an iterator.</span>
|
|
244
|
+
|
|
245
|
+
</section>
|
|
246
|
+
|
|
247
|
+
<!-- /.related -->
|
|
248
|
+
|
|
232
249
|
<!-- Section for all links. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
|
|
233
250
|
|
|
234
251
|
|
|
@@ -242,6 +259,10 @@ This package is part of [stdlib][stdlib], a standard library for JavaScript and
|
|
|
242
259
|
|
|
243
260
|
For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib].
|
|
244
261
|
|
|
262
|
+
#### Community
|
|
263
|
+
|
|
264
|
+
[![Chat][chat-image]][chat-url]
|
|
265
|
+
|
|
245
266
|
---
|
|
246
267
|
|
|
247
268
|
## License
|
|
@@ -251,7 +272,7 @@ See [LICENSE][stdlib-license].
|
|
|
251
272
|
|
|
252
273
|
## Copyright
|
|
253
274
|
|
|
254
|
-
Copyright © 2016-
|
|
275
|
+
Copyright © 2016-2022. The Stdlib [Authors][stdlib-authors].
|
|
255
276
|
|
|
256
277
|
</section>
|
|
257
278
|
|
|
@@ -270,15 +291,41 @@ Copyright © 2016-2021. The Stdlib [Authors][stdlib-authors].
|
|
|
270
291
|
[coverage-image]: https://img.shields.io/codecov/c/github/stdlib-js/iter-to-array-view/main.svg
|
|
271
292
|
[coverage-url]: https://codecov.io/github/stdlib-js/iter-to-array-view?branch=main
|
|
272
293
|
|
|
273
|
-
|
|
294
|
+
<!--
|
|
295
|
+
|
|
296
|
+
[dependencies-image]: https://img.shields.io/david/stdlib-js/iter-to-array-view.svg
|
|
274
297
|
[dependencies-url]: https://david-dm.org/stdlib-js/iter-to-array-view/main
|
|
275
298
|
|
|
299
|
+
-->
|
|
300
|
+
|
|
301
|
+
[umd]: https://github.com/umdjs/umd
|
|
302
|
+
[es-module]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
|
|
303
|
+
|
|
304
|
+
[deno-url]: https://github.com/stdlib-js/iter-to-array-view/tree/deno
|
|
305
|
+
[umd-url]: https://github.com/stdlib-js/iter-to-array-view/tree/umd
|
|
306
|
+
[esm-url]: https://github.com/stdlib-js/iter-to-array-view/tree/esm
|
|
307
|
+
|
|
308
|
+
[chat-image]: https://img.shields.io/gitter/room/stdlib-js/stdlib.svg
|
|
309
|
+
[chat-url]: https://gitter.im/stdlib-js/stdlib/
|
|
310
|
+
|
|
276
311
|
[stdlib]: https://github.com/stdlib-js/stdlib
|
|
277
312
|
|
|
278
313
|
[stdlib-authors]: https://github.com/stdlib-js/stdlib/graphs/contributors
|
|
279
314
|
|
|
280
315
|
[stdlib-license]: https://raw.githubusercontent.com/stdlib-js/iter-to-array-view/main/LICENSE
|
|
281
316
|
|
|
317
|
+
[@stdlib/array/complex64]: https://www.npmjs.com/package/@stdlib/array-complex64
|
|
318
|
+
|
|
319
|
+
<!-- <related-links> -->
|
|
320
|
+
|
|
321
|
+
[@stdlib/array/from-iterator]: https://www.npmjs.com/package/@stdlib/array-from-iterator
|
|
322
|
+
|
|
323
|
+
[@stdlib/array/to-view-iterator]: https://www.npmjs.com/package/@stdlib/array-to-view-iterator
|
|
324
|
+
|
|
325
|
+
[@stdlib/iter/to-array-view-right]: https://www.npmjs.com/package/@stdlib/iter-to-array-view-right
|
|
326
|
+
|
|
327
|
+
<!-- </related-links> -->
|
|
328
|
+
|
|
282
329
|
</section>
|
|
283
330
|
|
|
284
331
|
<!-- /.links -->
|
package/docs/types/index.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ type Binary = ( value: any, index: number ) => any;
|
|
|
59
59
|
* @param src - source array-like object
|
|
60
60
|
* @returns iterator value
|
|
61
61
|
*/
|
|
62
|
-
type
|
|
62
|
+
type Ternary = ( value: any, index: number, src: ArrayLike<any> ) => any;
|
|
63
63
|
|
|
64
64
|
/**
|
|
65
65
|
* Map function invoked for each iterated value.
|
|
@@ -69,7 +69,7 @@ type Tertiary = ( value: any, index: number, src: ArrayLike<any> ) => any;
|
|
|
69
69
|
* @param src - source array-like object
|
|
70
70
|
* @returns iterator value
|
|
71
71
|
*/
|
|
72
|
-
type MapFunction = Nullary | Unary | Binary |
|
|
72
|
+
type MapFunction = Nullary | Unary | Binary | Ternary;
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
75
|
* Fills an array-like object view with values returned from an iterator.
|
package/lib/main.js
CHANGED
|
@@ -24,7 +24,7 @@ var isFunction = require( '@stdlib/assert-is-function' );
|
|
|
24
24
|
var isCollection = require( '@stdlib/assert-is-collection' );
|
|
25
25
|
var isIteratorLike = require( '@stdlib/assert-is-iterator-like' );
|
|
26
26
|
var isInteger = require( '@stdlib/assert-is-integer' ).isPrimitive;
|
|
27
|
-
var
|
|
27
|
+
var arraylike2object = require( '@stdlib/array-base-arraylike2object' );
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
// MAIN //
|
|
@@ -62,6 +62,7 @@ function iterator2arrayview( iterator, out ) {
|
|
|
62
62
|
var begin;
|
|
63
63
|
var end;
|
|
64
64
|
var fcn;
|
|
65
|
+
var set;
|
|
65
66
|
var i;
|
|
66
67
|
var v;
|
|
67
68
|
|
|
@@ -139,29 +140,26 @@ function iterator2arrayview( iterator, out ) {
|
|
|
139
140
|
begin = 0;
|
|
140
141
|
}
|
|
141
142
|
}
|
|
143
|
+
set = arraylike2object( out ).setter;
|
|
142
144
|
i = begin - 1;
|
|
143
145
|
if ( fcn ) {
|
|
144
146
|
while ( i < end-1 ) {
|
|
145
147
|
i += 1;
|
|
146
148
|
v = iterator.next();
|
|
147
|
-
if ( hasOwnProp( v, 'value' ) ) {
|
|
148
|
-
out[ i ] = fcn.call( thisArg, v.value, i, i-begin );
|
|
149
|
-
}
|
|
150
149
|
if ( v.done ) {
|
|
151
150
|
break;
|
|
152
151
|
}
|
|
152
|
+
set( out, i, fcn.call( thisArg, v.value, i, i-begin ) );
|
|
153
153
|
}
|
|
154
154
|
return out;
|
|
155
155
|
}
|
|
156
156
|
while ( i < end-1 ) {
|
|
157
157
|
i += 1;
|
|
158
158
|
v = iterator.next();
|
|
159
|
-
if ( hasOwnProp( v, 'value' ) ) {
|
|
160
|
-
out[ i ] = v.value;
|
|
161
|
-
}
|
|
162
159
|
if ( v.done ) {
|
|
163
160
|
break;
|
|
164
161
|
}
|
|
162
|
+
set( out, i, v.value );
|
|
165
163
|
}
|
|
166
164
|
return out;
|
|
167
165
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stdlib/iter-to-array-view",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"description": "Fill an array-like object view with values returned from an iterator.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"examples": "make examples",
|
|
29
29
|
"benchmark": "make benchmark"
|
|
30
30
|
},
|
|
31
|
-
"homepage": "https://
|
|
31
|
+
"homepage": "https://stdlib.io",
|
|
32
32
|
"repository": {
|
|
33
33
|
"type": "git",
|
|
34
34
|
"url": "git://github.com/stdlib-js/iter-to-array-view.git"
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"url": "https://github.com/stdlib-js/stdlib/issues"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@stdlib/
|
|
40
|
+
"@stdlib/array-base-arraylike2object": "^0.0.x",
|
|
41
41
|
"@stdlib/assert-is-collection": "^0.0.x",
|
|
42
42
|
"@stdlib/assert-is-function": "^0.0.x",
|
|
43
43
|
"@stdlib/assert-is-integer": "^0.0.x",
|
|
@@ -45,11 +45,14 @@
|
|
|
45
45
|
"@stdlib/types": "^0.0.x"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
+
"@stdlib/array-complex128": "^0.0.x",
|
|
48
49
|
"@stdlib/array-float64": "^0.0.x",
|
|
49
50
|
"@stdlib/array-to-iterator": "^0.0.x",
|
|
50
51
|
"@stdlib/bench": "^0.0.x",
|
|
52
|
+
"@stdlib/complex-float64": "^0.0.x",
|
|
51
53
|
"@stdlib/math-base-assert-is-nan": "^0.0.x",
|
|
52
54
|
"@stdlib/random-iter-randu": "^0.0.x",
|
|
55
|
+
"@stdlib/strided-base-reinterpret-complex128": "^0.0.x",
|
|
53
56
|
"@stdlib/utils-noop": "^0.0.x",
|
|
54
57
|
"tape": "git+https://github.com/kgryte/tape.git#fix/globby",
|
|
55
58
|
"istanbul": "^0.4.1",
|