Unten ist mein Objekt innerhalb des Arrays. Ich muss die Liste anzeigen, die dieses Array liest.

let res = {      
  details: [
        {
            "code":"123",
            "name":"tye"
        },
        {
            "code":"456",
            "name":"San Joaquin"
        },
        {
            "code":"789",
            "name":"Stanislaus"
        },
    ]
};

Ich muss details.code lesen und anzeigen, was nicht funktioniert. Ich muss eine Liste aller code anzeigen

123
456
789

Ich brauche keine Person zum Anzeigen. Nicht wie details[0].code. Unten ist was ich getan habe

let det = [];
Object.keys(res.details).forEach((code) => {            
     det.push(res.details[code])
});

Hier gibt det keine Liste von code an. Wie erreicht man das?

0
Matarishvan 18 Apr. 2018 im 08:30

7 Antworten

Beste Antwort

Verwenden Sie die Funktion map. Es ist besser geeignet, als ein separates Array zu haben und forEach Push-Elemente zu verwenden.

let res = {      
  details: [
        {
            "code":"123",
            "name":"tye"
        },
        {
            "code":"456",
            "name":"San Joaquin"
        },
        {
            "code":"789",
            "name":"Stanislaus"
        },
    ]
};

const mapped = res.details.map(item => item.code);

console.log(mapped);

Sie können das Objekt auch in der Parameterliste zerstören

const mapped = res.details.map(({ code }) => code);
2
Suren Srapyan 18 Apr. 2018 im 05:32

Versuchen Sie map(), was in Ihrem Fall besser geeignet ist:

let res = {      
  details: [
        {
            "code":"123",
            "name":"tye"
        },
        {
            "code":"456",
            "name":"San Joaquin"
        },
        {
            "code":"789",
            "name":"Stanislaus"
        },
    ]
};


let codeArr  = res.details.map(c => c.code);

console.log(codeArr);

Wenn Sie forEach() verwenden möchten, ignorieren Sie einfach Object.keys:

let res = {      
  details: [
        {
            "code":"123",
            "name":"tye"
        },
        {
            "code":"456",
            "name":"San Joaquin"
        },
        {
            "code":"789",
            "name":"Stanislaus"
        },
    ]
};

let det = [];
res.details.forEach(code => det.push(code.code));
console.log(det)
1
Mamun 18 Apr. 2018 im 05:47

Möglicherweise benötigen Sie hier keine Object.keys. Verwenden Sie die Array map -Methode, um ein Array mit Codewerten zurückzugeben

let res = {
  details: [{
      "code": "123",
      "name": "tye"
    },
    {
      "code": "456",
      "name": "San Joaquin"
    },
    {
      "code": "789",
      "name": "Stanislaus"
    },
  ]
};
let det = res.details.map((code) => {
  return code.code
});
console.log(det)
1
brk 18 Apr. 2018 im 05:34

Versuche dies

let res = {      
  details: [
        {
            "code":"123",
            "name":"tye"
        },
        {
            "code":"456",
            "name":"San Joaquin"
        },
        {
            "code":"789",
            "name":"Stanislaus"
        },
    ]
};
var data = res.details.map(function(item) { return item["code"]; });

console.log(data);
    
1
Ramesh Rajendran 18 Apr. 2018 im 05:34
 
 $(document).ready(function(){
 var details = [
        {
            "code":"123",
            "name":"tye"
        },
        {
            "code":"456",
            "name":"San Joaquin"
        },
        {
            "code":"789",
            "name":"Stanislaus"
        },
    ]

for(var i=0;i< details.length;i++)
{
   var markup='<li>'+ details[i].code+'</li>';
    $('ul').append(markup);
}
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<ul>
</ul>
</body>
1
deepak paleewal 18 Apr. 2018 im 05:52
let res = {      
  details: [
        {
            "code":"123",
            "name":"tye"
        },
        {
            "code":"456",
            "name":"San Joaquin"
        },
        {
            "code":"789",
            "name":"Stanislaus"
        },
    ]
};

var arr = [];
for (var key in res.details) {
    var obj = res.details[key].code;
    arr.push(obj);
}
    console.log(arr);
1
Parth Raval 18 Apr. 2018 im 05:54

Ich verstehe nicht, warum Leute Antworten mit map vorschlagen. Herkömmlicherweise verwenden wir map, wenn wir das Objektarray tatsächlich in eine andere Struktur ändern. Sie können forEach verwenden, um dies zu erreichen, gefolgt von einer Destrukturierungszuweisung innerhalb von forEach wie {code} in der Funktion forEach, mit der Sie den Wert der Eigenschaft code von erhalten jedes Objekt im res.details Array:

let res = {
  details: [
    {
      "code":"123",
      "name":"tye"
    },
    {
      "code":"456",
      "name":"San Joaquin"
    },
    {
      "code":"789",
      "name":"Stanislaus"
    },
  ]
};
var codeArray = [];
res.details.forEach(({code}) => codeArray.push(code));

console.log(codeArray);
0
Ankit Agarwal 18 Apr. 2018 im 05:47