web-dev-qa-db-fra.com

Angular2, TypeScript: Comment insérer un tableau d'objets dans un autre tableau d'objets avec seulement quelques champs de l'objet

Je sais comment utiliser un tableau d'objets, mais je n'ai jamais eu la nécessité d'insérer une donnée d'un tableau dans une autre. J'ai besoin de pousser un tableau d'objets dans un autre tableau avec seulement 2 champs de l'objet. En ce moment mon format d'objet est un peu comme ceci

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

Je veux pousser ceci dans un autre tableau mais je ne veux que courseid et nommer dans l'objet. J'ai lu qu'il fallait initialiser l'objet dans le constructeur, utiliser slice () et quelques autres fonctions, puis Push, mais je ne sais pas comment le faire pour le mien, car j'ai besoin d'insérer une donnée de tableau dans une autre Bien que quelqu'un m'aide à cet égard.

9
Impromptu_Coder

Vous recherchez la méthode array map() :

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

Essaye ça:

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

Vous pouvez simplement le faire comme ça.

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

si vous avez encore des doutes à ce sujet, veuillez suivre ceci rl

5
isuruAb

Mappez-la sur une donnée JSON renvoyée, abonnez-la à un tableau existant ou vide. #Manuscrit

  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