2017-06-05 4 views
-1

Ich habe JavaScript mehrdimensionales Array wie folgt aus:Make Komma getrennt Strings aus mehrdimensionales Array

a 1 
b 2 
c 3 

Ich möchte es in Komma getrennt Wert wie folgt umgerechnet:

function reg() { 
    var result = []; 
    var comma_value; 

    for (var i = 0; i < arrc.length; i++) { 
     if (parseInt(arrc[i].value)) { 
      result.push([arrp[i].value, arrc[i].value]); 
     } 

     // result is an array 
     // My desired result: 
     // comma_value = "a,1;b,2;c,3" 
    } 

    $('#str').val(JSON.stringify(result)); 

    console.table(result); 
    console.log(result.join(', ')); 
} 
+1

[MDN Array.prototype.join()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join?v=Beispiel) –

+2

Können Sie klären die mehrdimensionale Array-Struktur? Dein 'wie das' ist ziemlich schwer zu verstehen. –

+0

Ich habe versucht, aber es funktioniert nicht richtig – sudhara

Antwort

3

Angesichts Ihrer Kommentare nehme ich an, dass Sie einfach nachsuchen:

let array = [ 
 
    ['a', 1], 
 
    ['b', 2], 
 
    ['c', 3] 
 
]; 
 

 
let comma_value = array.join(';'); 
 

 
console.log(comma_value); // 'a,1;b,2;c,3'

Dies funktioniert aufgrund der impliziten Arrayelement ['a', 1] bespannen 'a,1' Umwandlung innerhalb des array.join(';') Methodenaufruf durchgeführt.

Wenn Sie neugierig wie dies funktioniert: Wenn Sie array.join(';') aufrufen, werden die einzelnen Array-Elemente zunächst in Strings über die Array.prototype.toString() Methode konvertiert:

['a', 1].toString() // returns 'a,1' 

Anschließend diese Strings mit dem ';' Separator verbunden sind, zwischen.

Allerdings sehe ich nicht, wie sich dies und Ihre Kommentare auf die angegebene reg() Funktion beziehen. Dieser Code enthält zwei eindimensionale Arrays mit {value: ...} Objekten als Elemente.

+0

wird eigentlich nicht 'join' verwendet, sondern' toString' wird verwendet, um einen primitiven Wert eines Arrays für die inneren Arrays zu erhalten. Es sieht aus wie 'Join', aber es ist' toString'. –

+0

@NinaScholz Sie haben recht, aber dies geschieht alles innerhalb des Methodenaufrufs 'array.join (';')'. Ich bin mir nicht sicher, ob OP daran interessiert ist, * wie * diese Umwandlung von Elementen in Zeichenfolgen innerhalb dieses Methodenaufrufs geschieht. Ich habe die Antwort ein wenig geklärt. –

+0

würde mich interessieren ... ;-) –

1
alert([["a",1],["b",2]].map(e=>e.join()).join(";")); 

die inneren Arrays Join , dann die äußere ...

Verwandte Themen