85 votes

Itérer sur un tableau d'objets dans Typescript

Je dois parcourir le tableau d'objets dans angular 2 et limiter l'affichage de la longueur de chaîne pour une clé particulière de l'objet.

  this.productService.loadAllProducts(product).subscribe(data => {
  if (this.authService.checkActiveSession(data)) {
    if (data.success) {
     //console.log(this.product_desc.substring(0,2))
         for(let i=0;i<data.products.length ;i++){  //How to properly iterate here!!
         console.log(data.products[0].product_desc)
      }
      this.source.load(data.products);
     } else {
      console.log('Not binded');
    }
  }
 

}); }

Je dois limiter la longueur de prod_desc à (dire) 10 caractères en affichant pour lesquels j'ai utilisé:

Par exemple:

 this.product_desc.substring(0,10)
 

141voto

Wernerson Points 1804

Vous pouvez utiliser la fonction intégrée forEach pour les tableaux.

Comme ça:

 //this sets all product descriptions to a max length of 10 characters
data.products.forEach( (element) => {
    element.product_desc = element.product_desc.substring(0,10);
});
 

Votre version n'était pas fausse cependant. Cela devrait ressembler davantage à ceci:

 for(let i=0; i<data.products.length; i++){
    console.log(data.products[i].product_desc); //use i instead of 0
}
 

48voto

Dans Typescript et ES6, vous pouvez également utiliser for..of:

 for (var product of products) {
     console.log(product.product_desc)
}
 

qui sera transcodé en javascript:

 for (var _i = 0, products_1 = products; _i < products_1.length; _i++) {
    var product = products_1[_i];
    console.log(product.product_desc);
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X