Nest all content into snippets
This commit is contained in:
31
snippets/js/s/csv-to-array.md
Normal file
31
snippets/js/s/csv-to-array.md
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
title: CSV to array
|
||||
type: snippet
|
||||
language: javascript
|
||||
tags: [string,array]
|
||||
cover: keyboard-tea
|
||||
dateModified: 2022-01-30T12:14:39+02:00
|
||||
---
|
||||
|
||||
Converts a comma-separated values (CSV) string to a 2D array.
|
||||
|
||||
- Use `Array.prototype.indexOf()` to find the first newline character (`\n`).
|
||||
- Use `Array.prototype.slice()` to remove the first row (title row) if `omitFirstRow` is `true`.
|
||||
- Use `String.prototype.split()` to create a string for each row.
|
||||
- Use `String.prototype.split()` to separate the values in each row, using the provided `delimiter`.
|
||||
- Omit the second argument, `delimiter`, to use a default delimiter of `','`.
|
||||
- Omit the third argument, `omitFirstRow`, to include the first row (title row) of the CSV string.
|
||||
|
||||
```js
|
||||
const CSVToArray = (data, delimiter = ',', omitFirstRow = false) =>
|
||||
data
|
||||
.slice(omitFirstRow ? data.indexOf('\n') + 1 : 0)
|
||||
.split('\n')
|
||||
.map(v => v.split(delimiter));
|
||||
```
|
||||
|
||||
```js
|
||||
CSVToArray('a,b\nc,d'); // [['a', 'b'], ['c', 'd']];
|
||||
CSVToArray('a;b\nc;d', ';'); // [['a', 'b'], ['c', 'd']];
|
||||
CSVToArray('col1,col2\na,b\nc,d', ',', true); // [['a', 'b'], ['c', 'd']];
|
||||
```
|
||||
Reference in New Issue
Block a user