Travis build: 31

This commit is contained in:
30secondsofcode
2018-06-27 18:17:10 +00:00
parent 9788e764be
commit 677cf6e769
13 changed files with 69 additions and 17 deletions

View File

@ -394,6 +394,7 @@ average(1, 2, 3);
* [`capitalize`](#capitalize) * [`capitalize`](#capitalize)
* [`capitalizeEveryWord`](#capitalizeeveryword) * [`capitalizeEveryWord`](#capitalizeeveryword)
* [`CSVToArray`](#csvtoarray) * [`CSVToArray`](#csvtoarray)
* [`CSVToJSON`](#csvtojson-)
* [`decapitalize`](#decapitalize) * [`decapitalize`](#decapitalize)
* [`escapeHTML`](#escapehtml) * [`escapeHTML`](#escapehtml)
* [`escapeRegExp`](#escaperegexp) * [`escapeRegExp`](#escaperegexp)
@ -7281,6 +7282,42 @@ CSVToArray('col1,col2\na,b\nc,d', ',', true); // [['a','b'],['c','d']];
<br>[⬆ Back to top](#table-of-contents) <br>[⬆ Back to top](#table-of-contents)
### CSVToJSON ![advanced](/advanced.svg)
Converts a comma-separated values (CSV) string to a 2D array of objects.
The first row of the string is used as the title row.
Use `Array.slice()` and `Array.indexOf('\n')` and `String.split(delimiter)` to separate the first row (title row) into values.
Use `String.split('\n')` to create a string for each row, then `Array.map()` and `String.split(delimiter)` to separate the values in each row.
Use `Array.reduce()` to create an object for each row's values, with the keys parsed from the title row.
Omit the second argument, `delimiter`, to use a default delimiter of `,`.
```js
const CSVToJSON = (data, delimiter = ',') => {
const titles = data.slice(0, data.indexOf('\n')).split(delimiter);
return data
.slice(data.indexOf('\n') + 1)
.split('\n')
.map(v => {
const values = v.split(delimiter);
return titles.reduce((obj, title, index) => ((obj[title] = values[index]), obj), {});
});
};
```
<details>
<summary>Examples</summary>
```js
CSVToJSON('col1,col2\na,b\nc,d'); // [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
CSVToJSON('col1;col2\na;b\nc;d', ';'); // [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
```
</details>
<br>[⬆ Back to top](#table-of-contents)
### decapitalize ### decapitalize
Decapitalizes the first letter of a string. Decapitalizes the first letter of a string.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -10,12 +10,15 @@ Omit the second argument, `delimiter`, to use a default delimiter of `,`.
```js ```js
const CSVToJSON = (data, delimiter = ',') => { const CSVToJSON = (data, delimiter = ',') => {
const titles = data.slice(0,data.indexOf('\n')).split(delimiter); const titles = data.slice(0, data.indexOf('\n')).split(delimiter);
return data.slice(data.indexOf('\n')+1).split('\n').map(v => { return data
const values = v.split(delimiter); .slice(data.indexOf('\n') + 1)
return titles.reduce((obj, title, index) => ((obj[title] = values[index]), obj), {}); .split('\n')
}); .map(v => {
} const values = v.split(delimiter);
return titles.reduce((obj, title, index) => ((obj[title] = values[index]), obj), {});
});
};
``` ```
```js ```js