mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-21 17:08:11 +08:00
26 lines
736 B
JavaScript
26 lines
736 B
JavaScript
/*
|
|
clip - clip all values in a Array or TypedArray, IN PLACE.
|
|
|
|
Values in array are clipped if less than `lower` or greater than `upper`.
|
|
|
|
If `setTo` is undefined, values less than `lower` will be set to `lower`,
|
|
and values greater than `upper` will be set to `upper`.
|
|
|
|
If `setTo` is not undefined, values outside the [lower, upper] range will be set to
|
|
`setTo`.
|
|
|
|
*/
|
|
export default function clip(arr, lower, upper, setTo) {
|
|
const lowerSet = setTo === undefined ? lower : setTo;
|
|
const upperSet = setTo === undefined ? upper : setTo;
|
|
for (let i = 0, l = arr.length; i < l; i += 1) {
|
|
const v = arr[i];
|
|
if (v < lower) {
|
|
arr[i] = lowerSet;
|
|
} else if (v > upper) {
|
|
arr[i] = upperSet;
|
|
}
|
|
}
|
|
return arr;
|
|
}
|