una tablas tabla obtener editar dinamicas descargar definicion datos con agregar javascript jquery

tablas - obtener datos de una tabla html javascript



¿Una forma sencilla de convertir la matriz de JavaScript en una lista separada por comas? (15)

¿Quieres terminar con un "y"?

Para esta situación, creé un módulo npm.

Prueba arrford


Uso

const arrford = require(''arrford''); arrford([''run'', ''climb'', ''jump!'']); //=> ''run, climb, and jump!'' arrford([''run'', ''climb'', ''jump!''], false); //=> ''run, climb and jump!'' arrford([''run'', ''climb!'']); //=> ''run and climb!'' arrford([''run!'']); //=> ''run!''


Instalar

npm install --save arrford


Lee mas

arrford


Inténtalo tú mismo

Enlace tónico

Tengo una matriz unidimensional de cadenas en JavaScript que me gustaría convertir en una lista separada por comas. ¿Hay una forma sencilla en JavaScript de variedad de jardín (o jQuery) para convertir eso en una lista separada por comas? (Sé cómo iterar a través de la matriz y construir la cadena por concatenación, si esa es la única manera).


Aquí hay una implementación que convierte una matriz bidimensional o una matriz de columnas en una cadena CSV escapada correctamente. Las funciones no comprueban la cadena válida / número de entrada o el número de columnas (asegúrese de que su matriz es válida para empezar). Las celdas pueden contener comas y comillas!

Aquí hay un script para decodificar cadenas CSV .

Aquí está mi script para codificar cadenas CSV :

// Example var csv = new csvWriter(); csv.del = ''/t''; csv.enc = "''"; var nullVar; var testStr = "The comma (,) pipe (|) single quote ('') double quote (/") and tab (/t) are commonly used to tabulate data in plain-text formats."; var testArr = [ false, 0, nullVar, // undefinedVar, '''', {key:''value''}, ]; console.log(csv.escapeCol(testStr)); console.log(csv.arrayToRow(testArr)); console.log(csv.arrayToCSV([testArr, testArr, testArr])); /** * Class for creating csv strings * Handles multiple data types * Objects are cast to Strings **/ function csvWriter(del, enc) { this.del = del || '',''; // CSV Delimiter this.enc = enc || ''"''; // CSV Enclosure // Convert Object to CSV column this.escapeCol = function (col) { if(isNaN(col)) { // is not boolean or numeric if (!col) { // is null or undefined col = ''''; } else { // is string or object col = String(col); if (col.length > 0) { // use regex to test for del, enc, /r or /n // if(new RegExp( ''['' + this.del + this.enc + ''/r/n]'' ).test(col)) { // escape inline enclosure col = col.split( this.enc ).join( this.enc + this.enc ); // wrap with enclosure col = this.enc + col + this.enc; } } } return col; }; // Convert an Array of columns into an escaped CSV row this.arrayToRow = function (arr) { var arr2 = arr.slice(0); var i, ii = arr2.length; for(i = 0; i < ii; i++) { arr2[i] = this.escapeCol(arr2[i]); } return arr2.join(this.del); }; // Convert a two-dimensional Array into an escaped multi-row CSV this.arrayToCSV = function (arr) { var arr2 = arr.slice(0); var i, ii = arr2.length; for(i = 0; i < ii; i++) { arr2[i] = this.arrayToRow(arr2[i]); } return arr2.join("/r/n"); }; }


Creo que esto debería hacerlo:

var arr = [''contains,comma'', 3.14, ''contains"quote'', "more''quotes"] var item, i; var line = []; for (i = 0; i < arr.length; ++i) { item = arr[i]; if (item.indexOf && (item.indexOf('','') !== -1 || item.indexOf(''"'') !== -1)) { item = ''"'' + item.replace(/"/g, ''""'') + ''"''; } line.push(item); } document.getElementById(''out'').innerHTML = line.join('','');

fiddle

Básicamente, todo lo que hace es verificar si la cadena contiene una coma o una cita. Si lo hace, entonces duplica todas las comillas y pone comillas en los extremos. Luego une cada una de las partes con una coma.



En realidad, la implementación toString() realiza una unión con comas de forma predeterminada:

var arr = [ 42, 55 ]; var str1 = arr.toString(); // Gives you "42,55" var str2 = String(arr); // Ditto

No sé si esto es obligatorio por la especificación JS pero esto es lo que más Casi todos los navegadores parecen estar haciendo.


Hay muchos métodos para convertir una matriz en una lista separada por comas

1. Usando array # join

De MDN

El método join () une todos los elementos de una matriz (o un objeto similar a una matriz) en una cadena.

El código

var arr = ["this","is","a","comma","separated","list"]; arr = arr.join(",");

Retazo

var arr = ["this", "is", "a", "comma", "separated", "list"]; arr = arr.join(","); console.log(arr);

2. Usando array # toString

De MDN

El método toString () devuelve una cadena que representa la matriz especificada y sus elementos.

El código

var arr = ["this","is","a","comma","separated","list"]; arr = arr.toString();

Retazo

var arr = ["this", "is", "a", "comma", "separated", "list"]; arr = arr.toString(); console.log(arr);

3. Agregue [] + antes de la matriz o + [] después de una matriz

El [] + o + [] lo convertirá en una cadena

Prueba

([]+[] === [].toString())

saldrá verdadero

console.log([]+[] === [].toString());

var arr = ["this","is","a","comma","separated","list"]; arr = []+arr;

Retazo

var arr = ["this", "is", "a", "comma", "separated", "list"]; arr = []+arr; console.log(arr);

también

var arr = ["this","is","a","comma","separated","list"]; arr = arr+[];

var arr = ["this", "is", "a", "comma", "separated", "list"]; arr = arr + []; console.log(arr);


Me gustó la solución en https://jsfiddle.net/rwone/qJUh2/ porque agrega espacios después de comas:

array = ["test","test2","test3"] array = array.toString(); array = array.replace(/,/g, ", "); alert(array);

O, como lo sugiere @StackOverflaw en los comentarios:

array.join('', '');


O (más eficientemente):

var arr = new Array(3); arr[0] = "Zero"; arr[1] = "One"; arr[2] = "Two"; document.write(arr); // same as document.write(arr.toString()) in this context

El método toString de una matriz cuando se le llama devuelve exactamente lo que necesita: lista separada por comas.


Por lo general, necesito algo que también omita el valor si ese valor es null o undefined , etc.

Así que aquí está la solución que funciona para mí:

// Example 1 const arr1 = [''apple'', null, ''banana'', '''', undefined, ''pear'']; const commaSeparated1 = arr1.filter(item => item).join('', ''); console.log(commaSeparated1); // ''apple, banana, pear'' // Example 2 const arr2 = [null, ''apple'']; const commaSeparated2 = arr2.filter(item => item).join('', ''); console.log(commaSeparated2); // ''apple''

La mayoría de las soluciones aquí devolverían '', apple'' si mi matriz se pareciera a la de mi segundo ejemplo. Por eso prefiero esta solución.


Si necesita usar "y" en lugar de "," entre los dos últimos elementos, puede hacer esto:

function arrayToList(array){ return array .join(", ") .replace(/, ((?:.(?!, ))+)$/, '' and $1''); }


Tomando el código inicial:

var arr = new Array(3); arr[0] = "Zero"; arr[1] = "One"; arr[2] = "Two";

La respuesta inicial de usar la función de unión es ideal. Una cosa a considerar sería el uso final de la cadena.

Para usar en alguna visualización textual final:

arr.join(",") => "Zero,One,Two"

Para usar en una URL para pasar múltiples valores de una manera REST (de alguna manera):

arr.join("|") => "Zero|One|Two" var url = ''http://www.yoursitehere.com/do/something/to/'' + arr.join("|"); => "http://www.yoursitehere.com/do/something/to/Zero|One|Two"

Por supuesto, todo depende del uso final. Solo tenga en cuenta la fuente de datos y el uso, y todo estará bien con el mundo.


Utilice el método Array.toString

var arr = [''one'', ''two'', ''three'']; arr.toString(); // ''one,two,three''

MDN en Array.toString ()


Papa Parse (basado en navegador) maneja comas en valores y otros casos de borde. Use Baby Parse para Node.

P.ej. (nodo)

const csvParser = require(''babyparse''); var arr = [1,null,"a,b"] ; var csv = csvParser.unparse([arr]) ; console.log(csv) ;

1, "a, b"


var arr = ["Pro1", "Pro2", "Pro3"]; console.log(arr.join());// Pro1,Pro2,Pro3 console.log(arr.join('', ''));// Pro1, Pro2, Pro3


var array = ["Zero", "One", "Two"]; var s = array + []; console.log(s); // => Zero,One,Two