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 } 0In 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