I need to iterate over the array of objects in angular 2 and limit the string length display for a particular key in the object.

 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'); } } 

}); }

I need to limit the prod_desc length to (say) 10 characters while displaing for which i have used:

Eg:

this.product_desc.substring(0,10) 

2 Answers

You can use the built-in forEach function for arrays.

Like this:

//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); }); 

Your version wasn't wrong though. It should look more like this:

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

In Typescript and ES6 you can also use for..of:

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

which will be transcoded to javascript:

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy