Es gibt viele Möglichkeiten, um das gewünschte Ergebnis zu erzielen. Teilen wir sie in Kategorien ein:
Nur ES6-Werte :
Hauptmethode hierfür ist Object.values . Mit Object.keys und Array.map können Sie jedoch auch das erwartete Ergebnis erzielen :
Object.values(obj)
Object.keys(obj).map(k => obj[k])
var obj = {
A: {
name: "John"
},
B: {
name: "Ivan"
}
}
console.log('Object.values:', Object.values(obj))
console.log('Object.keys:', Object.keys(obj).map(k => obj[k]))
ES6 Schlüssel & Wert :
Mithilfe der dynamischen / berechneten Eigenschaften und der Destrukturierung von Map und ES6 können Sie den Schlüssel beibehalten und ein Objekt von der Map zurückgeben.
Object.keys(obj).map(k => ({[k]: obj[k]}))
Object.entries(obj).map(([k,v]) => ({[k]:v}))
var obj = {
A: {
name: "John"
},
B: {
name: "Ivan"
}
}
console.log('Object.keys:', Object.keys(obj).map(k => ({
[k]: obj[k]
})))
console.log('Object.entries:', Object.entries(obj).map(([k, v]) => ({
[k]: v
})))
Nur Lodash-Werte :
Die dafür entwickelte Methode ist _.values
jedoch, dass es "Verknüpfungen" wie gibt_.map
und die Utility-Methode gibt, _.toArray
die auch ein Array zurückgeben würde, das nur die Werte vom Objekt enthält. Man könnte auch _.map
wenn die _.keys
und die Werte aus dem Objekt erhalten , indem die Verwendung von obj[key]
Notation.
Hinweis: _.map
Wenn ein Objekt übergeben wird, wird es verwendetbaseMap
Handler, der sich im Wesentlichen forEach
auf den Objekteigenschaften befindet.
_.values(obj)
_.map(obj)
_.toArray(obj)
_.map(_.keys(obj), k => obj[k])
var obj = {
A: {
name: "John"
},
B: {
name: "Ivan"
}
}
console.log('values:', _.values(obj))
console.log('map:', _.map(obj))
console.log('toArray:', _.toArray(obj))
console.log('keys:', _.map(_.keys(obj), k => obj[k]))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
Lodash Key & Value :
// Outputs an array with [[KEY, VALUE]]
_.entries(obj)
_.toPairs(obj)
// Outputs array with objects containing the keys and values
_.map(_.entries(obj), ([k,v]) => ({[k]:v}))
_.map(_.keys(obj), k => ({[k]: obj[k]}))
_.transform(obj, (r,c,k) => r.push({[k]:c}), [])
_.reduce(obj, (r,c,k) => (r.push({[k]:c}), r), [])
var obj = {
A: {
name: "John"
},
B: {
name: "Ivan"
}
}
// Outputs an array with [KEY, VALUE]
console.log('entries:', _.entries(obj))
console.log('toPairs:', _.toPairs(obj))
// Outputs array with objects containing the keys and values
console.log('entries:', _.map(_.entries(obj), ([k, v]) => ({
[k]: v
})))
console.log('keys:', _.map(_.keys(obj), k => ({
[k]: obj[k]
})))
console.log('transform:', _.transform(obj, (r, c, k) => r.push({
[k]: c
}), []))
console.log('reduce:', _.reduce(obj, (r, c, k) => (r.push({
[k]: c
}), r), []))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
Beachten Sie, dass in den obigen Beispielen ES6 verwendet wird (Pfeilfunktionen und dynamische Eigenschaften). Sie können lodash verwenden_.fromPairs
und andere Methoden verwenden, um ein Objekt zu , wenn ES6 ein Problem darstellt.