# @flourish/enhanced-arrays 中文文档

规范地址：https://npmcn.com/package/%40flourish/enhanced-arrays/

版本：2\.0\.0
npm 元数据更新时间：2026-08-19T18:13:19.684Z
中文译文更新时间：2026-11-15T00:17:23.227Z
软件包许可：https://flourish\.studio/terms/fcl/

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40flourish/enhanced-arrays
原文对照：https://npmcn.com/package/%40flourish/enhanced-arrays/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：43 kB，30 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：1 个
- 首次发布：2019-06-26T15:24:15.564Z
- 最新版本发布：2022-02-10T18:10:46.178Z
- 近 30 天下载量：3820（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 0 个）

## 中文简介

用有用的方法创建不可变的类似数组对象

## 安装

```sh
npm install @flourish/enhanced-arrays
```

也可以使用：`pnpm add @flourish/enhanced-arrays`、`yarn add @flourish/enhanced-arrays`、`bun add @flourish/enhanced-arrays`

## README

# 面粉封装阵列

本单元的目的是使收集单一类型(字符串,数字,日期时间)的数据的工作更加简单. 每个"增强阵列"是一个不可变的物体,它用固定的一组值来创建. 数组对象上的属性和方法,然后让用户方便地访问数据的属性,子集和变换,而不需要他们在额外的库中绘制.

## 如何安装

`npm install @flourish/enhanced-arrays`· ;

## 如何创建增强的数组

从模块中导入相关的创建器函数...

```js
import {
    createNumericArray, createDatetimeArray, createStringArray
} from @flourish/enhanced-arrays;
```

然后通过调用相关类型的常规数据组来创建增强的数组对象.

```js
const dates = [new Date(2022-02-02), new Date(2022-02-02), new Date(2023-02-01)];
const numbers = createNumericArray([1, 5, 6, 4, 8, 5]);
const strings = createStringArray('a', "boat", "21", "boat");
const dates = createDatetimeArray(dates);
```

您也可以调用一个访问器函数来提取或转换输入区域的数据:

```js
const things = [{x: "coats", y: 7}, {x: "hats", y: 10}, {x: "boots", y: 6} ];
const more_numbers = createNumericArray(things, d => d.y);
```

传递给创建器函数的任何元素属于错误类型(在应用访问器函数后,如果使用),将被拒绝. 这些值将不会被使用在任何计算中,并且这些值不会被存储在增强的数组中. 然而,它们从原始输入阵列得出的索引仍将通过下列方式提供: `dropped_indexes` 属性,以返回这些索引中被冻结的数组.

```js
const other_things = [{x: "cat", y: 5}, {x: "dog", y: 4}, {x: "mouse", y: "two"} ];
const yet_more_numbers = createNumericArray(other_things, d => d.y);
console.log(yet_more_things.dropped_indexes); // [2];
```

## 增强数组属性

### `datetime_array`

`true` 用于日期时数组. `undefined` 用于数字和字符串数组.

### `dropped_indexes`

输入数组(或运行输入数组上的存取器函数后创建的数组)的所有值的索引,由于它们属于错误类型而被丢弃.

### `enhanced_array`

`true` 用于所有增强的数组.

### `length`

存储数组中的值数 。 这是输入数组的长度减去因属于错误类型而被拒绝的数值数.

### `max`

数字数组中的最大值,日期时数组中的最新时间戳和字符串数组中按字母顺序排列的最后一个字符串.

### `mean`

该([计算)](https://en.wikipedia.org/wiki/Mean#Arithmetic_mean_\(AM\)) 在数字或日期时数组中的值. `undefined` 用于字符串阵列.

### `median`

这个 [中位数](https://en.wikipedia.org/wiki/Median) 在数字或日期时数组中的值. `undefined` 用于字符串阵列.

### `min`

数字数组中最小的值,日期时数组中最早的时间戳和字符串数组中第一个以字母顺序排列的字符串.

### `n_empty`

字符串阵列中的空字符串数 (""). `undefined` 用于数字和日期时数组.

### `numeric_array`

`true` 用于所有数组. `undefined` 用于日期和字符串错误.

### `range`

两者的区别 `max` 内 `min` 数字数组中的值. `undefined` 用于日期时间和字符串数组.

### `sd`

这个 [(样本)标准差](https://en.wikipedia.org/wiki/Standard_deviation) 数字数组中的数值. `undefined` 用于日期时间和字符串数组.

### `sorted_values`

以升序排列,将所有存储在增强数组中的被冻结数组。 对于数字数组来说,这意味着数字排序(如10前的2个),对于字符串数组来说,这意味着字母/语法排序(如"2"前的"10",但"1"后),对于日期时间表示最早的日期先出现.

### `sum`

数字数组中所有条目的总和. `undefined` 用于日期时间和字符串数组.

### `string_array`

`true` 用于所有字符串阵列. `undefined` 用于所有数字和日期数组.

### `values`

按照输入数组的顺序,将所有存储在增强数组中的被冻结数组.

### `variance`

这个 [(样本)差异](https://en.wikipedia.org/wiki/Variance) 数字数组中的数值. `undefined` 用于日期时间和字符串数组.

## 增强阵列的方法

### `ascending()`

返回一个存储值的数组,按上升顺序排序。 调用这种方法的结果不同于 `sorted_values` 属性,其中返回的数组不是被冻结的,可以更改.

### `descending()`

返回所存储的数组,按下行顺序排序.

### `extent()`

返回描述数据范围的双元素数组, ie `[min, max]`。 。 。 .

### `rank([lowest_first [, ties_method])`

向 funciton 调用返回参数中概述的存储值到其位置的地图。 默认值将排为最大到最小(数字),最后到第一(日期时间),或以最上字母顺序到最上字母顺序(字符串). 若为 `lowest_first` 真实的,然后这个排名系统就会被反转。 这个 `ties_method` 确定联系的级别。 公认的值有"最佳"(默认),"最坏","强烈","违反"和"正常"等. 在"最佳"的情况下被平分的参赛参赛者会分享下等分(代表1 2 2 4,假设2等分平分). 在"最坏"的情况下被捆绑的条目中,将共享更高数字的排名(1,3,3,4). 在"强烈"案件中被绑定的条目中,将分享下级,排名次高的值取上一级(1,2,23). 在“违反”情况下,可能的军衔平均为(12.5-2.54)。 在"平分"的情况下,平分值是任意的,尽管平分数(1,2,34)是不同的。 另见 [此维基百科文章](https://en.wikipedia.org/wiki/Ranking#Strategies_for_assigning_rankings)。 。 。 .

### `unique()`

返回已删除的已存储值的数组。 对于日期,时间戳用于确定双相分录是否重复.

### `uniqueAscending()`

返回一个存储值的数组,按升序排序,并删除重复。 对于日期,时间戳用于确定双相分录是否重复.

### `uniqueDescending()`

返回一个存储值的数组,按升序排序,并删除重复。 对于日期,时间戳用于确定双相分录是否重复.

### `unsorted()`

返回存储值的数组。 调用这种方法的结果不同于 `values` 属性,其中返回的数组不是被冻结的,可以更改.

## 常见问题

### @flourish/enhanced-arrays 是什么？

用有用的方法创建不可变的类似数组对象

### 如何安装 @flourish/enhanced-arrays？

在项目目录运行 npm install @flourish/enhanced-arrays，或使用 pnpm add / yarn add / bun add。

### @flourish/enhanced-arrays 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/flourish\_\_enhanced-arrays 是否存在。

### @flourish/enhanced-arrays 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @flourish/enhanced-arrays 可以商用吗？

@flourish/enhanced-arrays 使用 https://flourish\.studio/terms/fcl/ 许可。声明的许可为 https://flourish\.studio/terms/fcl/，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @flourish/enhanced-arrays 的下载量有多少？

根据 npm 官方下载统计，@flourish/enhanced-arrays 在 2026/10/15 – 2026/11/13 这 30 天内被下载 3,820 次，日均约 127 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @flourish/enhanced-arrays 还在维护吗？

最新版本 2\.0\.0 发布于 2022/02/11（4 年前）；至今共发布 7 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/06/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

