Heim > Web-Frontend > js-Tutorial > Detaillierte Code-Erklärung, wie Javascript die Attributwerte eines Objekts durchläuft

Detaillierte Code-Erklärung, wie Javascript die Attributwerte eines Objekts durchläuft

伊谢尔伦
Freigeben: 2017-07-21 13:07:15
Original
1745 Leute haben es durchsucht

In Bezug auf die Notwendigkeit, „die Eigenschaften und Werte von Objekten in js zu durchlaufen“. Der Grund besteht darin, ein js-Plug-in zu erstellen, das den Tabelleninhalt teilweise aktualisiert.

Problem: Der Attributwert des Objekts konnte nicht durch Durchlaufen des Attributnamen-Arrays abgerufen werden

Der anfängliche Fehlercode lautet wie folgt:


for(var i=0;i<dataList.length;i++)
{
  var dataLine="<tr>";   
  for(var j=0;j<filedList.length;j++){
    dataLine+="<td>"+dataList[i].filedList[j]+"</td>"; 
  } 
  dataLine+="</tr>";
  $("#"+tableName).append(dataLine);
}
Nach dem Login kopieren

Zunächst enthält dataList ein Array von Objekten; fileList enthält ein Array von Attributfeldnamen von Objekten. Zuerst dachte ich so: Durchlaufe die Datenliste und erhalte jedes Mal ein Objekt, verschachtele dann eine for-Schleife, durchlaufe die Feldliste, erhalte jedes Mal einen ihrer Attributwerte und setze ihn dann zu einer Tabelle zusammen .

Zum Beispiel: dataList[0] ist ein Emp-Objekt und Emp hat Attribute wie id und name. Normalerweise können wir den ID-Wert des aktuellen Emp-Objekts über dataList[0].id abrufen. Wenn Sie jedoch das Attributfeldarray durchlaufen, können Sie dataList[0].filedList[0] nicht auf diese Weise verwenden. Dies bedeutet nicht, dass der Wert nicht in filedList[0] abgerufen wird, da ich bereits über warning(filedList[0]) den ID-Wert 1 erhalten habe. Warum scheitert die Übernahme? Weil es nach einer Eigenschaft namens fileList[0] im Emp-Objekt sucht! Natürlich gibt es im Emp-Objekt kein solches Attribut, daher schlägt die Erfassung fehl, wie sie sollte. Wie erhalten wir also den Attributwert des Objekts?

Lösung: Verwenden Sie zum Durchlaufen die „erweiterte for-Schleife“

Der korrekte Code lautet wie folgt:


for(var i=0;i<dataList.length;i++)
{
  var dataLine="<tr>";   
  for(var filedName in dataList[i]){
    dataLine+="<td>"+dataList[i][filedName]+"</td>"; 
  } 
  dataLine+="</tr>";
  $("#"+tableName).append(dataLine);
}
Nach dem Login kopieren

Lösungsidee: Da dataList[i] ein Objekt ist, kann ich jedes Mal den Attributnamen dieses Objekts abrufen und dann den Attributwert dieses Attributs über dataList[i][filedName] abrufen, dh Objekt [Attributname] .


function displayProp(obj){  
  var names="";    
  for(var name in obj){    
    names+=name+": "+obj[name]+", "; 
  } 
  alert(names); 
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Code-Erklärung, wie Javascript die Attributwerte eines Objekts durchläuft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage