Skip to content

Latest commit

 

History

History
117 lines (79 loc) · 2.53 KB

File metadata and controls

117 lines (79 loc) · 2.53 KB

Rust Array Functions: A Cheatsheet for JavaScript Developers

A cheatsheet on how to use common JavaScript instance methods in Rust.

JavaScript documentation:

Executes a user-supplied "reducer" callback function on each element of the array (from left to right), to reduce it to a single value.

JavaScript Example:

const res = arr.reduce((acc, obj) =>
  Math.abs(obj.prop) < Math.abs(acc.prop) ? obj : acc
);

Rust documentation:

Reduces the elements to a single one, by repeatedly applying a reducing operation.

Rust Example:

let res = arr.iter().reduce(|acc, obj| {
    if (obj.prop).abs() < (acc.prop).abs() {
        obj
    } else {
        acc
    }
});

JavaScript documentation:

Returns a new array containing all elements of the calling array for which the provided filtering function returns true.

Example:

const res = arr.filter(r => r.prop === comparator);

Rust documentation:

Creates an iterator which uses a closure to determine if an element should be yielded.

Example:

let res = arr.iter().filter(|&r| r.prop == comparator).collect::<Vec<_>>();

JavaScript documetation:

Returns a new array containing the results of invoking a function on every element in the calling array.

Example:

let res = arr.map(r => ({
    name: r.displayName,
    family: r.familyName
}));

Rust documentation:

Takes a closure and creates an iterator which calls that closure on each element.

Example (SimplePerson here is a struct):

let res = arr.map(|r| SimplePerson {
    name: r.display_name.clone(),
    family: r.family_name.clone(),
});

JavaScript documentation:

The reference to the original array, now sorted. Note that the array is sorted in place, and no copy is made.

Example:

const res = arr.sort((a, b) => a.prop - b.prop);

Rust documentation:

Sorts the slice.

Example (Note that we're mutating arr):

arr.sort_by(|a, b| a.prop.cmp(&b.prop));