Javascript 在Typescript中的对象数组上迭代
我需要迭代angular 2中的对象数组,并限制对象中特定键的字符串长度显示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
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);
}