stdlib-js / stdlib-js/stdlib

RFC: add functional equivalent of `Array.prototype.copyWithin`

Abierto
#203 0 comentarios 0 reacciones 0 asignados Ver en GitHub
difficulty: 3 Feature Help Wanted RFC Utilities
Lenguaje dominante
JavaScript
Estrellas
6k
Forks
1.3k
Merge medio
1 d 3 h
PR fusionados (30 d)
611

Descripción

## Checklist

> Please ensure the following tasks are completed before submitting a feature request.

- [x] Read and understood the [Code of Conduct][code-of-conduct].
- [x] Searched for existing issues and pull requests.
- [x] The issue name begins with `RFC:`.

## Description

> Description of the feature request.

This RFC proposes to add a "functional" equivalent of [`Array.prototype.copyWithin`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin) and [`TypedArray.prototype.copyWithin`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/copyWithin).

Package: `@stdlib/utils/copy-within`
Alias: `copyWithin`

The interface would be as follows:

```javascript
/**
* @param {Collection} collection - input collection
* @param {integer} target - target index
* @param {integer} [start=0] - source start index
* @param {integer} [end=collection.length] - source end index
* @returns {Collection} modified input collection
*/
function copyWithin( collection, target ) {
if ( !isCollection( collection ) ) {
throw new TypeError( '...' );
}
// implementation...
}
```
If a provided `collection` has a built-in `copyWithin` method, the implementation would defer to that method. Otherwise, the implementation would provide a "polyfill", thus extending `copyWithin` support to environments lacking the built-in API for `Array` and `TypedArray`.

## Related Issues

> Does this feature request have any related issues?

No.

## Questions

> Any questions for reviewers?

No.

## Other

> Any other information relevant to this feature request? This may include screenshots, references, sample output, and/or implementation notes.

No.

[code-of-conduct]: https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.