Object.values()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2017 browserübergreifend verfügbar.
Die statische Methode Object.values() gibt ein Array mit den Werten der eigenen aufzählbaren, durch Strings geschlüsselten Eigenschaften eines gegebenen Objekts zurück.
Probieren Sie es aus
const object = {
a: "some string",
b: 42,
c: false,
};
console.log(Object.values(object));
// Expected output: Array ["some string", 42, false]
Syntax
Object.values(obj)
Parameter
obj-
Ein Objekt.
Rückgabewert
Ein Array, das die Werte der eigenen aufzählbaren, durch Strings geschlüsselten Eigenschaften des gegebenen Objekts enthält.
Beschreibung
Object.values() gibt ein Array zurück, dessen Elemente die Werte der aufzählbaren, durch Strings geschlüsselten Eigenschaften sind, die direkt auf object gefunden werden. Dies ähnelt dem Zugriff auf die Werte innerhalb einer for...in-Schleife, mit der Ausnahme, dass eine for...in-Schleife auch Eigenschaften in der Prototypkette aufzählt. Die Reihenfolge des von Object.values() zurückgegebenen Arrays ist dieselbe wie die einer for...in-Schleife.
Wenn Sie die Eigenschaftsschlüssel benötigen, verwenden Sie stattdessen Object.keys(). Wenn Sie sowohl die Eigenschaftsschlüssel als auch die Werte benötigen, verwenden Sie stattdessen Object.entries().
Beispiele
>Verwendung von Object.values()
const obj = { foo: "bar", baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]
// Array-like object
const arrayLikeObj1 = { 0: "a", 1: "b", 2: "c" };
console.log(Object.values(arrayLikeObj1)); // ['a', 'b', 'c']
// Array-like object with random key ordering
// When using numeric keys, the values are returned in the keys' numerical order
const arrayLikeObj2 = { 100: "a", 2: "b", 7: "c" };
console.log(Object.values(arrayLikeObj2)); // ['b', 'c', 'a']
// getFoo is a non-enumerable property
const myObj = Object.create(
{},
{
getFoo: {
value() {
return this.foo;
},
},
},
);
myObj.foo = "bar";
console.log(Object.values(myObj)); // ['bar']
Verwendung von Object.values() mit primitiven Werten
Argumente, die keine Objekte sind, werden in Objekte umgewandelt. undefined und null können nicht in Objekte umgewandelt werden und lösen unmittelbar einen TypeError aus. Nur Strings können eigene aufzählbare Eigenschaften haben, während alle anderen primitiven Werte ein leeres Array zurückgeben.
// Strings have indices as enumerable own properties
console.log(Object.values("foo")); // ['f', 'o', 'o']
// Other primitives except undefined and null have no own properties
console.log(Object.values(100)); // []
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.values> |