diff --git a/snippets/arrayToCSV.md b/snippets/arrayToCSV.md index 1d65c7adf..e0ecc3bc1 100644 --- a/snippets/arrayToCSV.md +++ b/snippets/arrayToCSV.md @@ -7,10 +7,10 @@ Use `Array.join('\n')` to combine all rows into a CSV string, separating each ro Omit the second argument, `delimiter`, to use a default delimiter of `,`. ```js -const arrayToCSV = (arr, delimiter = ',') => arr.map(v => v.join(delimiter)).join('\n'); +const arrayToCSV = (arr, delimiter = ',') => arr.map(v => v.map(x => `"${x}"`).join(delimiter)).join('\n'); ``` ```js -arrayToCSV([['a', 'b'], ['c', 'd']]); // 'a,b\nc,d' -arrayToCSV([['a', 'b'], ['c', 'd']], ';'); // 'a;b\nc;d' +arrayToCSV([['a', 'b'], ['c', 'd']]); // '"a","b"\n"c","d"' +arrayToCSV([['a', 'b'], ['c', 'd']], ';'); // '"a";"b"\n"c";"d"' ``` diff --git a/test/arrayToCSV/arrayToCSV.js b/test/arrayToCSV/arrayToCSV.js index aff8fe7de..f47570148 100644 --- a/test/arrayToCSV/arrayToCSV.js +++ b/test/arrayToCSV/arrayToCSV.js @@ -1,2 +1,2 @@ -const arrayToCSV = (arr, delimiter = ',') => arr.map(v => v.join(delimiter)).join('\n'); +const arrayToCSV = (arr, delimiter = ',') => arr.map(v => v.map(x => `"${x}"`).join(delimiter)).join('\n'); module.exports = arrayToCSV; \ No newline at end of file diff --git a/test/arrayToCSV/arrayToCSV.test.js b/test/arrayToCSV/arrayToCSV.test.js index 0105f66b1..7772ccff1 100644 --- a/test/arrayToCSV/arrayToCSV.test.js +++ b/test/arrayToCSV/arrayToCSV.test.js @@ -5,8 +5,8 @@ test('arrayToCSV is a Function', () => { expect(arrayToCSV).toBeInstanceOf(Function); }); test('arrayToCSV works with default delimiter', () => { - expect(arrayToCSV([['a','b'],['c','d']])).toBe('a,b\nc,d'); + expect(arrayToCSV([['a','b'],['c','d']])).toBe('"a","b"\n"c","d"'); }); test('arrayToCSV works with custom delimiter', () => { - expect(arrayToCSV([['a','b'],['c','d']], ';')).toBe('a;b\nc;d'); + expect(arrayToCSV([['a','b'],['c','d']], ';')).toBe('"a";"b"\n"c";"d"'); });