app.component.ts
import { Component,OnInit } from '@angular/core';
import { DataServiceService } from './data-service.service';
import {IModel} from './imodel';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular 5';
resultArray:IModel;
constructor(private dataService:DataServiceService){}
ngOnInit(){
this.dataService.getDataFromURL().subscribe((resultData)=>{
debugger
this.resultArray=resultData;
})
}
}
Run Code Online (Sandbox Code Playgroud)
dataservice.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class DataServiceService {
apiURL='https://jsonplaceholder.typicode.com/posts';
constructor(private http:HttpClient) { }
getDataFromURL(){
return this.http.get(this.apiURL)
}
}
Run Code Online (Sandbox Code Playgroud)
imodel.ts
export interface IModel {
userId: number; …Run Code Online (Sandbox Code Playgroud) var data=[
{name:'Sam',ssn:123, age:25, hobbies:[{name:'cricket'},{name:'football'}]},
{name:'John',ssn:234, age:25, hobbies:[{name:'cricket'},{name:'football'}]},
{name:'Mathew',ssn:345, age:25, hobbies:[{name:'cricket'},{name:'football'}]}
];
Run Code Online (Sandbox Code Playgroud)
想要将其生成为以下格式
[
{name:'Sam',ssn:123, age:25,hobbies:[{name:'cricket'}]},
{name:'Sam',ssn:123, age:25,hobbies:[{name:'football'}]},
{name:'John',ssn:234, age:25,hobbies:[{name:'cricket'}]},
{name:'John',ssn:234, age:25,hobbies:[{name:'football'}]},
{name:'Mathew',ssn:345, age:25,hobbies:[{name:'cricket'}]},
{name:'Mathew',ssn:345, age:25,hobbies:[{name:'football'}]}
];
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法。不明白。我已经添加了 reduce 方法的一些基本功能,但没有任何想法将其展平。
var flatten = data.reduce((curr, next) => {
var temp = [];
return (curr.hobbies = { name: "cricket" });
temp.push(curr);
return curr;
});
Run Code Online (Sandbox Code Playgroud)