在 Typescript 迭代对象数组

我需要在角度为2的对象数组上迭代,并限制对象中特定键的字符串长度显示。

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

我需要将 prod _ desc 长度限制为(比如)10个字符,同时显示我已经使用过的字符:

例如:

this.product_desc.substring(0,10)
339209 次浏览

可以对数组使用内置的 forEach函数。

像这样:

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

你的版本没错,应该是这样的:

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

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

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

它将被转换为 javascript:

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