Beim Aufrufen der JSON.stringify() -Methode wird eine gültige JSON-Zeichenfolge erstellt. Eine der Regeln für gültige JSON ist, dass jede Eigenschaft in "Anführungszeichen" sein sollte.
Deshalb ist es unmöglich, mit JSON.stringify das gewünschte Ergebnis zu erhalten.
Wenn Sie nur ein solches Objekt in ein Array konvertieren möchten, ist es beispielsweise möglich, eine solche Funktion zu verwenden.
function numerableObjectToArr(obj) {
var result = [];
var keys = Object.keys(obj);
keys.forEach(function(item){
result.push(obj[item]);
})
return result;
}
var a = {};
a[1] = 1;
a[4] = 4;
numerableObjectToArr(a); // returns [1, 4]
Aber auf diese Weise erhalten Sie nur Array mit Werten der vorhandenen Eigenschaften in der Obj.
Aber wenn Ihr prop Name des Index im Array bedeutet, und Sie sind sicher, dass es als Stütze Name immer die Nummer sein wird - diese Funktion verbessern können:
function numerableObjectToArr(obj) {
var result = [];
var keys = Object.keys(obj);
keys.forEach(function(item){
result[+item] = obj[item]; //we put index, then we put value to that place in array
})
return result;
}
var a = {};
a[1] = 1;
a[4] = 4;
numerableObjectToArr(a); // returns [undefined, 1, undefined, undefined, 4]
Objektschlüssel sind _always_ Strings. So etwas gibt es nicht. – SLaks
... und daher ist das letzte Codebeispiel ungültig JSON. –
jetzt Weg in Array zu konvertieren? –