2016-07-09 9 views
2

Ich habe ein array von objects,Lodash erhalten Schlüsselwerte aus Array von Objekten

var out = [{ 
    "type": "1", 
    "from": "13052033555", 
    "to": "4444444", 
    "amount": "40000", 
    "date": 1461575799, 
    "status": "1" 
    }, { 
    "type": "2", 
    "from": "13052033555", 
    "to": "1111111", 
    "amount": "30000", 
    "date": 1461575884, 
    "status": "1" 
    }... 
]; 

ich nur Werte, es ist ohne keys

Jetzt habe ich diese Funktion, um die Werte von Array wie diese zu erhalten, ich gehe Array dann gibt sie nur Werte ohne Schlüssel

function foo(a) { 
    var values = []; 
    for (var i = 0; i < a.length; i++) { 
    var obj = a[i]; 
    var arr = Object.keys(obj).map(function(k) { 
     return obj[k] 
    }); 
    values.push("[" + arr + "],"); 
    } 
    return values.join(''); 
} 

dann ist es die Werte Daten wi zurückgibt thout Tasten wie diese,

[ ["1","13052033555","4444444","40000",1461575799,"1"], 
    ["2","13052033555","1111111","30000",1461575884,"1"], 
    ....] 

Frage: Wie kann ich meine foo Funktion ändern lodash?

+0

'out.map (obj => _.values ​​(obj))' – gcampbell

+0

Andere Lösung 'out.map ((e) => Objekt.Tasten (e) .map ((Schlüssel) => e [Schlüssel]))' –

Antwort

8

Verwenden _.values()

var out = [{ 
 
     "type": "1", 
 
     "from": "13052033555", 
 
     "to": "4444444", 
 
     "amount": "40000", 
 
     "date": 1461575799, 
 
     "status": "1" 
 
     }, { 
 
     "type": "2", 
 
     "from": "13052033555", 
 
     "to": "1111111", 
 
     "amount": "30000", 
 
     "date": 1461575884, 
 
     "status": "1" 
 
     } 
 
    ]; 
 

 
    for (var i = 0; i < out.length; i++) { 
 
     out[i] = _.values(out[i]); 
 
    } 
 
    
 

 
console.log(out)
<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>

2

out.map(_.values);

Oder wenn unter ES5: _.map(out, _.values);