Skip to content

Commit

Permalink
all/any/RGBToHex/uuid/arrayToCSV/CSVToArray/CSVToJSON/JSONtoCSV
Browse files Browse the repository at this point in the history
  • Loading branch information
saqqdy committed Mar 3, 2021
1 parent dd2d298 commit 0e38e7b
Show file tree
Hide file tree
Showing 24 changed files with 801 additions and 1,148 deletions.
247 changes: 244 additions & 3 deletions API.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@
<dt><a href="#addEvent">addEvent(element, type, handler)</a></dt>
<dd><p>addEvent()事件委托,支持多次委托</p>
</dd>
<dt><a href="#all">all(arr, fn)</a> ⇒ <code>Boolean</code></dt>
<dd><p>如果所提供的谓词函数对一个集合中的所有元素都返回true,则返回true,否则返回false。</p>
</dd>
<dt><a href="#any">any(arr, fn)</a> ⇒ <code>Boolean</code></dt>
<dd><p>如果所提供的谓词函数对一个集合中的至少一个元素返回true,则返回true,否则返回false。</p>
</dd>
<dt><a href="#arrayToCSV">arrayToCSV(data, delimiter)</a> ⇒ <code>String</code></dt>
<dd><p>将一个二维数组转换为一个逗号分隔的值(CSV)字符串。</p>
</dd>
<dt><a href="#camel2Dash">camel2Dash(string)</a> ⇒ <code>String</code></dt>
<dd><p>camel2Dash
将驼峰字符串转成-间隔且全小写的Dash模式</p>
Expand Down Expand Up @@ -34,6 +43,12 @@
<dt><a href="#client">client(name, userAgent)</a> ⇒ <code>Object</code> | <code>Boolean</code></dt>
<dd><p>client方法返回一个浏览器判断结果:{ ANDROID: true, GECKO: true, GLSH_APP: false, IE: false, IOS: false, IPAD: false, IPHONE: false, MOBILE: true, MOBILEDEVICE: true, OPERA: false, QQ: false, QQBROWSER: false, TRIDENT: false, WEBKIT: true, WEIXIN: false }</p>
</dd>
<dt><a href="#CSVToArray">CSVToArray(data, delimiter, omitFirstRow)</a> ⇒ <code>Object</code></dt>
<dd><p>将一个逗号分隔的值(CSV)字符串转换为一个2D数组。</p>
</dd>
<dt><a href="#CSVToJSON">CSVToJSON(data, delimiter)</a> ⇒ <code>Object</code></dt>
<dd><p>将一个逗号分隔的值(CSV)字符串转换为一个2D对象数组。字符串的第一行作为标题行。</p>
</dd>
<dt><a href="#cutCHSString">cutCHSString(str, len, hasDot)</a> ⇒ <code>String</code></dt>
<dd><p>截取字符串,中文算2个字节</p>
</dd>
Expand Down Expand Up @@ -168,6 +183,9 @@ name=exMall-detail-goodsInfoId&amp;params[goodsInfoId]=8866 转成 name</em>exMa
<dt><a href="#isExitsVariable">isExitsVariable(variableName)</a> ⇒ <code>Boolean</code></dt>
<dd><p>是否存在指定变量</p>
</dd>
<dt><a href="#JSONToCSV">JSONToCSV(data, columns, delimiter)</a> ⇒ <code>String</code></dt>
<dd><p>将一个对象数组转换为只包含指定列的逗号分隔值(CSV)字符串。</p>
</dd>
<dt><a href="#nextIndex">nextIndex(min, max)</a> ⇒ <code>Number</code></dt>
<dd><p>返回下一个zIndex值</p>
</dd>
Expand All @@ -180,6 +198,9 @@ name=exMall-detail-goodsInfoId&amp;params[goodsInfoId]=8866 转成 name</em>exMa
<dt><a href="#removeEvent">removeEvent(element, type, handler)</a></dt>
<dd><p>removeEvent移除由addEvent创建的事件委托</p>
</dd>
<dt><a href="#RGBToHex">RGBToHex(r, g, b)</a> ⇒ <code>String</code></dt>
<dd><p>将RGB组件的值转换为颜色代码。</p>
</dd>
<dt><a href="#searchTreeObject">searchTreeObject(tree, [String, Object, Function], expression, keySet, number)</a> ⇒ <code>Array</code></dt>
<dd><p>tree对象深度查找</p>
</dd>
Expand Down Expand Up @@ -217,6 +238,9 @@ name=exMall-detail-goodsInfoId&amp;params[goodsInfoId]=8866 转成 name</em>exMa
<dd><p>upperFirst
首字母大写</p>
</dd>
<dt><a href="#uuid">uuid()</a> ⇒ <code>String</code></dt>
<dd><p>浏览器端生成uuid,采用v4方法</p>
</dd>
</dl>

<a name="addEvent"></a>
Expand All @@ -233,6 +257,102 @@ addEvent()事件委托,支持多次委托
| type | <code>String</code> | 事件类型。不需要加 on |
| handler | <code>function</code> | 回调方法 |

<a name="all"></a>

## all(arr, fn) ⇒ <code>Boolean</code>

如果所提供的谓词函数对一个集合中的所有元素都返回 true,则返回 true,否则返回 false。

**Kind**: global function
**Returns**: <code>Boolean</code> - 返回判断结果

| Param | Type | Description |
| ----- | --------------------- | ----------- |
| arr | <code>Array</code> | 目标数组 |
| fn | <code>function</code> | 判断方法 |

**Example**

```js
all([4, 2, 3], x => x > 1) // true
```

**Example**

```js
all([1, 2, 3]) // true
```

<a name="any"></a>

## any(arr, fn) ⇒ <code>Boolean</code>

如果所提供的谓词函数对一个集合中的至少一个元素返回 true,则返回 true,否则返回 false。

**Kind**: global function
**Returns**: <code>Boolean</code> - 返回判断结果

| Param | Type | Description |
| ----- | --------------------- | ----------- |
| arr | <code>Array</code> | 目标数组 |
| fn | <code>function</code> | 判断方法 |

**Example**

```js
any([0, 1, 2, 0], x => x >= 2) // true
```

**Example**

```js
any([0, 0, 1, 0]) // true
```

<a name="arrayToCSV"></a>

## arrayToCSV(data, delimiter) ⇒ <code>String</code>

将一个二维数组转换为一个逗号分隔的值(CSV)字符串。

**Kind**: global function
**Returns**: <code>String</code> - CSV 数据

| Param | Type | Description |
| --------- | ------------------- | --------------- |
| data | <code>Array</code> | json 数据 |
| delimiter | <code>String</code> | 分隔符,默认',' |

**Example**

```js
arrayToCSV([
['a', 'b'],
['c', 'd']
]) // '"a","b"\n"c","d"'
```

**Example**

```js
arrayToCSV(
[
['a', 'b'],
['c', 'd']
],
';'
) // '"a";"b"\n"c";"d"'
```

**Example**

```js
arrayToCSV([
['a', '"b" great'],
['c', 3.1415]
]) // '"a","""b"" great"\n"c",3.1415'
```

<a name="camel2Dash"></a>

## camel2Dash(string) ⇒ <code>String</code>
Expand Down Expand Up @@ -363,6 +483,65 @@ client 方法返回一个浏览器判断结果:{ ANDROID: true, GECKO: true, G
| name | <code>String</code> | 可选,比如传入 MicroMessenger,返回是否为微信内置浏览器 |
| userAgent | <code>String</code> | 可选,传入自定义的 ua,默认取浏览器的 navigator.appVersion |

<a name="CSVToArray"></a>

## CSVToArray(data, delimiter, omitFirstRow) ⇒ <code>Object</code>

将一个逗号分隔的值(CSV)字符串转换为一个 2D 数组。

**Kind**: global function
**Returns**: <code>Object</code> - array

| Param | Type | Default | Description |
| ------------ | -------------------- | ------------------ | ---------------------------- |
| data | <code>String</code> | | csv 数据 |
| delimiter | <code>String</code> | <code>,</code> | 分隔符,默认',' |
| omitFirstRow | <code>Boolean</code> | <code>false</code> | 第一行是表头数据,默认 false |

**Example**

```js
CSVToArray('a,b\nc,d') // [['a','b'],['c','d']];
```

**Example**

```js
CSVToArray('a;b\nc;d', ';') // [['a','b'],['c','d']];
```

**Example**

```js
CSVToArray('col1,col2\na,b\nc,d', ',', true) // [['a','b'],['c','d']];
```

<a name="CSVToJSON"></a>

## CSVToJSON(data, delimiter) ⇒ <code>Object</code>

将一个逗号分隔的值(CSV)字符串转换为一个 2D 对象数组。字符串的第一行作为标题行。

**Kind**: global function
**Returns**: <code>Object</code> - json

| Param | Type | Default | Description |
| --------- | ------------------- | -------------- | --------------- |
| data | <code>String</code> | | csv 数据 |
| delimiter | <code>String</code> | <code>,</code> | 分隔符,默认',' |

**Example**

```js
CSVToJSON('col1,col2\na,b\nc,d') // [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
```

**Example**

```js
CSVToJSON('col1;col2\na;b\nc;d', ';') // [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
```

<a name="cutCHSString"></a>

## cutCHSString(str, len, hasDot) ⇒ <code>String</code>
Expand Down Expand Up @@ -822,9 +1001,9 @@ name=exMall-detail-goodsInfoId&params[goodsInfoId]=8866 转成 name*exMall-detai
**Kind**: global function
**Returns**: <code>String</code> - 类型

| Param | Type | Description |
| ------ | ---------------- | ----------- |
| target | <code>any</code> | 目标 |
| Param | Type | Description |
| ------ | ------------------------ | ----------- |
| target | [<code>any</code>](#any) | 目标 |

<a name="getUrlParam"></a>

Expand Down Expand Up @@ -925,6 +1104,33 @@ getWindowSize 获取窗口大小
| ------------ | ------------------- | ------------ |
| variableName | <code>String</code> | 传入变量名称 |

<a name="JSONToCSV"></a>

## JSONToCSV(data, columns, delimiter) ⇒ <code>String</code>

将一个对象数组转换为只包含指定列的逗号分隔值(CSV)字符串。

**Kind**: global function
**Returns**: <code>String</code> - CSV 数据

| Param | Type | Description |
| --------- | ------------------- | --------------- |
| data | <code>Array</code> | json 数据 |
| columns | <code>Array</code> | 指定列 |
| delimiter | <code>String</code> | 分隔符,默认',' |

**Example**

```js
JSONToCSV([{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }], ['a', 'b']) // 'a,b\n"1","2"\n"3","4"\n"6",""\n"","7"'
```

**Example**

```js
JSONToCSV([{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }], ['a', 'b'], ';') // 'a;b\n"1";"2"\n"3";"4"\n"6";""\n"";"7"'
```

<a name="nextIndex"></a>

## nextIndex(min, max) ⇒ <code>Number</code>
Expand Down Expand Up @@ -973,6 +1179,27 @@ removeEvent 移除由 addEvent 创建的事件委托
| type | <code>String</code> | 事件类型。不需要加 on |
| handler | <code>function</code> | 回调方法 |

<a name="RGBToHex"></a>

## RGBToHex(r, g, b) ⇒ <code>String</code>

将 RGB 组件的值转换为颜色代码。

**Kind**: global function
**Returns**: <code>String</code> - hex 值

| Param | Type | Description |
| ----- | ------------------- | ------------- |
| r | <code>Number</code> | RGB 第 1 个值 |
| g | <code>Number</code> | RGB 第 2 个值 |
| b | <code>Number</code> | RGB 第 3 个值 |

**Example**

```js
RGBToHex(255, 165, 1) // 'ffa501'
```

<a name="searchTreeObject"></a>

## searchTreeObject(tree, [String, Object, Function], expression, keySet, number) ⇒ <code>Array</code>
Expand Down Expand Up @@ -1139,3 +1366,17 @@ upperFirst
| Param | Type | Description |
| ------ | ------------------- | ---------------- |
| string | <code>String</code> | 需要转换的字符串 |

<a name="uuid"></a>

## uuid() ⇒ <code>String</code>

浏览器端生成 uuid,采用 v4 方法

**Kind**: global function
**Returns**: <code>String</code> - uuid
**Example**

```js
uuid(255, 165, 1) // '4222fcfe-5721-4632-bede-6043885be57d'
```
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# 2021.03.03 v1.0.9 更新日志

1. 新增 all/any/RGBToHex/uuid 等方法
2. 新增 CSV 与对象之间的互转方法:arrayToCSV/CSVToArray/CSVToJSON/JSONtoCSV

# 2021.03.02 v1.0.8 更新日志

1. 新增 splitThousand 千分位分割方法
Expand Down
Loading

0 comments on commit 0e38e7b

Please sign in to comment.