gpt4 book ai didi

javascript - 向 Angular 中的 JSON 响应添加新的对象属性

转载 作者:行者123 更新时间:2023-11-30 15:20:19 33 4
gpt4 key购买 nike

我正在尝试向我的 JSON 响应添加一个新的对象属性。

我的示例 JSON 响应

{
"products": [{
"id": 1,
"name": "xyz"
}]
}

获取响应后需要向同一个 JSON 响应添加新的对象属性(show)

{
"products": [{
"id": 1,
"name": "xyz",
"show": false
}]
}

这是我的示例代码

import {Component,OnInit} from '@angular/core';
import {Http, Response} from '@angular/http';
import 'rxjs/Rx';
@Component({
templateUrl:'./electronics.html'
})
export class electronicsComponent{
productListElectronics={};
productListElectronicResponse: Object;
error:Object;
constructor(private http: Http) {
this.productListElectronicResponse={};
this.error={};
http.get('../json/electronics/electronics.json').map((res: Response) =>res.json()).subscribe(res =>
{

for(var i = 0; i <= res['products'].length; i++){
res['products'][i].show=false;
}
console.log(res);
}, error => this.error = error );
}
}

但控制台不断抛出以下错误:

ERROR TypeError: Cannot set property 'show' of undefined
at SafeSubscriber.http.get.map.subscribe._this.error [as _next] (products.component.ts:22)
at SafeSubscriber.__tryOrUnsub (Subscriber.ts:238)
at SafeSubscriber.next (Subscriber.ts:190)
at Subscriber._next (Subscriber.ts:135)
at Subscriber.next (Subscriber.ts:95)
at MapSubscriber._next (map.ts:80)
at MapSubscriber.Subscriber.next (Subscriber.ts:95)
at XMLHttpRequest.onLoad (xhr_backend.ts:104)
at ZoneDelegate.invokeTask (zone.js:398)
at Object.onInvokeTask (ng_zone.ts:253)
at ZoneDelegate.invokeTask (zone.js:397)
at Zone.runTask (zone.js:165)
at XMLHttpRequest.ZoneTask.invoke (zone.js:460)

最佳答案

你的错误在这里

 for(var i = 0; i <= res['products'].length; i++)

应该是

for(var i = 0; i <res['products'].length; i++)

:)

https://jsfiddle.net/rt6LjvLa/

关于javascript - 向 Angular 中的 JSON 响应添加新的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43842087/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com