2016-07-16 17 views
1

Ich habe ein Array von Objekt, aus dem ich versuche, eine durch Komma getrennte Zeichenfolge zu generieren. Hier ist mein Code -Erstellen einer kommagetrennten Zeichenfolge aus einem Objekt

arrData = { 
      "bl_number": "TCLPKGCTG1603200", 
      "comodity": "GEN", 
      "container": { 
          "container_id": "CRSU9007907", 
          "full_empty": true, 
          "type": 1 
         }, 
      "flc_lcl": "FCL", 
      "weight": "25.0000" 
      } 

var row = ""; 

for (var index in arrData) { 
    if(index == 'container'){ 
     for(var index_of_container_json in arrData[index]){ 
      if(index_of_container_json == 'container_id'){ 
       row = 'CONTAINER' + ','; 
      }else if(index_of_container_json == 'full_empty'){ 
       row = 'F/E' + ','; 
      } 
     } 
    }else if(index == 'bl_number'){ 
     row += 'B/L No' + ','; 
    }else if(index == 'flc_lcl'){ 
     row += 'FCL/LCL' + ','; 
    }else if(index == 'comodity'){ 
     row += 'COMMODITY' + ','; 
    }else if(index == 'weight'){ 
     row += 'WGT' + ','; 
    } 
} 

I Komma getrennte Zeichenfolge in Reihe Variable speichere. Das Endergebnis ist

F/E,B/L No,FCL/LCL,COMMODITY,WGT 

Mein Problem ist, irgendwie CONTAINER immer aus Reihe fehlen werden. Ich brauche mein Endergebnis wie diese

CONTAINER,F/E,B/L No,FCL/LCL,COMMODITY,WGT 

Antwort

3
  1. Ich sehe Fehler hier: arrData = [.. ] es arrData = { ... }
  2. Exchange-row = ...-row += ... überall für Schleife
1

Sie können this.Since versuchen sollte in der Objekt iteriert nacheinander über Eigenschaften, daher hängt die Position des CONTAINER in der Ergebniszeichenfolge von der Position der Containereigenschaft im Objekt arrData ab;

var arrData = { 
      "bl_number": "TCLPKGCTG1603200", 
      "comodity": "GEN", 
      "container": { 
          "container_id": "CRSU9007907", 
          "full_empty": true, 
          "type": 1 
         }, 
      "flc_lcl": "FCL", 
      "weight": "25.0000" 
} 

var row = ""; 
for (var index in arrData) { 
    if(index == 'container'){ 
     for(var index_of_container_json in arrData[index]){ 
      if(index_of_container_json == 'container_id'){ 
       row += 'CONTAINER' + ','; 
      }else if(index_of_container_json == 'full_empty'){ 
       row += 'F/E' + ','; 
      } 
     } 
    }else if(index == 'bl_number'){ 
     row += 'B/L No' + ','; 
    }else if(index == 'flc_lcl'){ 
     row += 'FCL/LCL' + ','; 
    }else if(index == 'comodity'){ 
     row += 'COMMODITY' + ','; 
    }else if(index == 'weight'){ 
     row += 'WGT' + ','; 
    } 
} 

console.log(row); 
1

arrData = [{ 
 
    "bl_number": "TCLPKGCTG1603200", 
 
    "comodity": "GEN", 
 
    "container": { 
 
    "container_id": "CRSU9007907", 
 
    "full_empty": true, 
 
    "type": 1 
 
    }, 
 
    "flc_lcl": "FCL", 
 
    "weight": "25.0000" 
 
}] 
 

 
var row = ""; 
 
for (i = 0; i < arrData.length; i += 1) { 
 
    arrElem = arrData[i]; 
 
    row = ""; 
 
    for (var index in arrElem) { 
 
    if (index == 'container') { 
 
     str = ''; 
 
     for (var index_of_container_json in arrElem[index]) { 
 
     if (index_of_container_json == 'container_id') { 
 
      str += 'CONTAINER' + ','; 
 
     } else if (index_of_container_json == 'full_empty') { 
 
      str += 'F/E' + ','; 
 
     } 
 
     } 
 
     row = str + row; 
 
    } else if (index == 'bl_number') { 
 
     row += 'B/L No' + ','; 
 
    } else if (index == 'flc_lcl') { 
 
     row += 'FCL/LCL' + ','; 
 
    } else if (index == 'comodity') { 
 
     row += 'COMMODITY' + ','; 
 
    } else if (index == 'weight') { 
 
     row += 'WGT' + ','; 
 
    } 
 
    } 
 
    // remove the last comma. 
 
    console.log(row.replace(/,\s*$/, "")); 
 
}

0

Sie haben ein Array und Ihre Array-Elemente sind Objekte. Sie müssen Iterieren werfen Sie auch Ihre Array-Elemente Eigenschaften.

arrData.forEach(function(value){ 
     for(var index in value){ 
      if(index == 'container'){ 
       for(var index_of_container_json in arrData[index]){ 
        if(index_of_container_json == 'container_id'){ 
         row = 'CONTAINER' + ','; 
        }else if(index_of_container_json == 'full_empty'){ 
         row = 'F/E' + ','; 
        } 
       } 
      }else if(index == 'bl_number'){ 
       row += 'B/L No' + ','; 
      }else if(index == 'flc_lcl'){ 
       row += 'FCL/LCL' + ','; 
      }else if(index == 'comodity'){ 
       row += 'COMMODITY' + ','; 
      }else if(index == 'weight'){ 
       row += 'WGT' + ','; 
      } 
     } 
    } 
+0

Es gibt keine Fehler beim Iterieren. – ni8mr

+0

er/sie hat gerade seine Frage bearbeitet und meine Antwort hat in diesem Moment keinen Sinn! – r0ck

Verwandte Themen