Javascript 在Typescript中的对象数组上迭代

Javascript 在Typescript中的对象数组上迭代,javascript,angular,typescript,Javascript,Angular,Typescript,我需要迭代angular 2中的对象数组,并限制对象中特定键的字符串长度显示 this.productService.loadAllProducts(product).subscribe(data => { if (this.authService.checkActiveSession(data)) { if (data.success) { //console.log(this.product_desc.substring(0,2)) for(l

我需要迭代angular 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');
    }
  }

您可以对数组使用内置的
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
}

for(让i=0;i在Typescript和ES6中,您还可以用于..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);
}
for(var\u i=0,products\u 1=products;\u i
此解决方案不适用于我。我收到一个TS错误,提示“类型“string”上不存在属性“product\u desc”。似乎
product
变量是字符串类型,无法将其定义为产品?我刚刚从Suchivam复制了假定的对象属性,但当然,您只能登录到对象上的控制台属性(无论它是什么)。登录到控制台除了检查您试图完成的工作是否有效之外,没有提供任何其他功能。prob应该让它代替var.@Wellspring,它在这里也不起作用,即使我的示例中的“产品”清楚地显示为VSCode中的我的对象列表。
for (var _i = 0, products_1 = products; _i < products_1.length; _i++) {
    var product = products_1[_i];
    console.log(product.product_desc);
}