stdlib-js / stdlib-js/stdlib

[RFC]: add `findLastIndex` method to `array/fixed-endian-factory`

Open
#3,144 7 comments 0 reactions 0 assignees View on GitHub
Accepted difficulty: 2 Feature Good First Issue Help Wanted JavaScript priority: Normal RFC
Dominant language
JavaScript
Stars
6k
Forks
1.3k
Avg merge
1d 3h
Merged PRs (30d)
611

Description

### Description

This RFC proposes adding support for a `findLastIndex` method to [`@stdlib/array/fixed-endian-factory`](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/fixed-endian-factory).

This method is the equivalent of the [`TypedArray.prototype.findLastIndex`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findLastIndex) method, but for fixed-endian typed arrays.

When adding support, the following tasks should be completed:

1. The `./lib/main.js` file should be updated with the added method.
2. A new test file should be created which includes unit tests testing against expected behavior.
3. Two benchmark files should be added: one measuring baseline performance and another measuring performance as the array length increases.
4. The README should be updated to include documentation for the added method.

To provide a concrete example of what a PR adding the desired method should contain, see https://github.com/stdlib-js/stdlib/commit/956a4624c788689b1bca285856b987ea3aa32eb6, which is a commit adding `forEach` support. This should provide an idea of what is expected.

For an example of specialized typed arrays having customized methods, see

- [`@stdlib/array/bool`](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/bool)
- [`@stdlib/array/complex128`](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/complex128)
- [`@stdlib/array/complex64`](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/complex64)

While the method proposed in this RFC will likely **not** match the implementations found in the above packages, those packages should provide a conceptual idea of what is desired. Do **not** simply copy-paste the code found in those packages.

### Notes

- If you are interested in contributing a PR which addresses this RFC and are a **first-time contributor** or not yet familiar with our project conventions, please do **not** submit LLM-generated code. Please consult our [contributing guidelines](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) and the associated [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md). Failure to respect project conventions will result in your PR being rejected without review. Thank you for understanding!

### Checklist

- [X] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [X] Searched for existing issues and pull requests.
- [X] The issue name begins with `[RFC]:`.

Contributor guide

Open the contributing guide

Research direction

Start with lib/main.js in @stdlib/array/fixed-endian-factory and compare the referenced forEach commit with the specialized typed-array packages. Add the new test file, two benchmark files, and README documentation described in the issue. Done means expected behavior is covered by unit tests and both benchmark cases are present.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
data
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.