javascript - hur man delar upp ett js-objekt i en array av nyckel-värde-par?


Låt oss säga att jag har ett objekt som detta:

var myObject = {
   X:1,
   Y:2,
   Z:3
}

Låt oss säga att jag vill skapa en for-loop för att bearbeta varje egenskap på objektet. Koden nedan är bara avsedd att vara något pseudokod för att kommunicera vad jag vill göra:

var properties = myObject.split();
for(var i = 0; i < properties.length; i++)
{
   var x = properties[i][key];
   var y = properties[i][value]
}

Kan du rekommendera någon kod som jag kan använda för att åstadkomma detta i Javascript/TypeScript?

Svar #1

Du kan använda Object.entries-funktionen för att få alla nyckel- och värdepar som en matris av matriser:

Object.entries(myObject);

Vilket skulle returnera:

[['X', 1], ['Y', 2], ['Z' 3]]

Och du kunde iterera igenom dem:

for(const [key, value] of Object.entries(myObject)) {
  console.log(key, value);
}

Vilken skulle logga ut:

X 1
Y 2
Z 3

Observera att detta är en relativt ny funktion utan stöd i varken IE eller Opera. Du kan använda polyfill från MDN eller använda någon av de andra metoderna (for…in med hasOwnProperty, Object.keys, etc.).

Svar #2

var arr = {
        X:1,
        Y:2,
        Z:3
    };


Object.keys(arr).map(key => { console.log(key, arr[key]) })

Relaterade artiklar