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]) })