Angular2,Typescript:如何将对象数组推入另一个对象数组,其中只有几个对象字段

Posted

技术标签:

【中文标题】Angular2,Typescript:如何将对象数组推入另一个对象数组,其中只有几个对象字段【英文标题】:Angular2,Typescript:How to push array of objects into another array of objects with only a few fields of the object 【发布时间】:2017-09-01 19:38:42 【问题描述】:

我知道如何对对象数组进行操作,但从来没有必要将一个数组数据推送到另一个数组中。我需要将一个对象数组推入另一个只有 2 个对象字段的数组中。现在我的对象格式有点像这样

data: [
        "name": "Btech",
        "courseid": "1",
        "courserating": 5,
        "points": "100",
        "type": "computers"
    ,
   
        "name": "BCom",
        "courseid": "2",
        "courserating": 5,
        "points": "100",
        "type": "computers"
    ];

我想把它推入另一个数组,但我只想要对象中的 courseid 和 name。我读过我们需要在构造函数中初始化对象,使用 slice() 和其他一些函数,然后推送,但我不知道我该怎么做,因为我需要将一个数组数据推送到另一个.请有人在这方面帮助我。

【问题讨论】:

假设other是另一个数组,你可以这样做:data.map(item => return courseid: item.courseid, name: item.name ).forEach(item => other.push(item)); 【参考方案1】:

您正在寻找array map() method:

const newArray = array.map(o => 
  return  name: o.name, courseid: o.courseid ;
);

【讨论】:

【参考方案2】:

试试这个:

let data = [
    "name": "Btech",
    "courseid": "1",
    "courserating": 5,
    "points": "100",
    "type": "computers"
,

    "name": "BCom",
    "courseid": "2",
    "courserating": 5,
    "points": "100",
    "type": "computers"
];

let other = []; // your other array...

data.map(item => 
    return 
        courseid: item.courseid,
        name: item.name
    
).forEach(item => other.push(item));

console.log(JSON.stringify(other))
// => ["courseid":"1","name":"Btech","courseid":"2","name":"BCom"]

【讨论】:

非常感谢。它起作用了。你能告诉我如何在 typescript 中深度复制或克隆数组吗?【参考方案3】:

你可以这样做。

//assign your array of object to variable

var youArray:Array<any>= [
    "name": "Btech",
    "courseid": "1",
    "courserating": 5,
    "points": "100",
    "type": "computers"
,

    "name": "BCom",
    "courseid": "2",
    "courserating": 5,
    "points": "100",
    "type": "computers"
];

var resultArray:Array<any>=[] //empty array which we are going to push our selected items, always define types 

youArray.forEach(i=> 
   resultArray.push(
   
    "name":i.name,
    "courseid":i.courseid
   );
);

console.log(resultArray)

如果您对此仍有疑问。请关注此url

【讨论】:

您能告诉我如何在 typescript 中深度复制或克隆数组吗? @Impromptu_Coder 你看到了吗。 ***.com/questions/35504310/…【参考方案4】:

映射到返回的 JSON 数据,将其订阅到现有数组或空数组。 #打字稿

  let pictimeline= []; 
    var timeline = this.picService.fetchtimeline(this.limit)


.map((data : Response) => data.json())
    .subscribe(pictimeline=> this.pictimeline = pictimeline);


console.log(this.pictimeline);

【讨论】:

以上是关于Angular2,Typescript:如何将对象数组推入另一个对象数组,其中只有几个对象字段的主要内容,如果未能解决你的问题,请参考以下文章

如何将 jQuery 导入 Angular2 TypeScript 项目?

Angular 2 / Typescript - 如何检查对象数组以查看属性是不是具有相同的值?

如何将 TypeScript WebPack ts-loader 与 Angular2 @View 样式集成?

Angular2,Typescript:如何在每页显示一个元素的数组中检查单选按钮?

Typescript - 如何在 Angular2 中正确使用 jsPDF?

降级使用 Typescript 编写的 angular2 组件。如何将其导入用 es5 编写的 angular 1 项目?