web-dev-qa-db-ja.com

Angular2、TypeScript:オブジェクトの配列をオブジェクトのいくつかのフィールドのみで別のオブジェクトの配列にプッシュする方法

オブジェクトの配列を操作する方法は知っていますが、ある配列データを別の配列データにプッシュする必要はありませんでした。オブジェクトの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()および他のいくつかの関数を使用してからプッシュする必要があることを読みましたが、ある配列データを別の配列データにプッシュする必要があるので、どうすればそれができるのかわかりません親切に誰かがこの点で私を助けてくれます。

9
Impromptu_Coder

array map() method を探しています:

const newArray = array.map(o => {
  return { name: o.name, courseid: o.courseid };
});
21
JB Nizet

これを試して:

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"}]
11
Diullei

このように簡単に実行できます。

//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)

これについて疑問がある場合は、これに従ってください rl

5
isuruAb

返されるJSONデータにマップし、既存の配列または空の配列にサブスクライブします。 #TypeScript

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


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


console.log(this.pictimeline);
0
SamYah