2016-07-09 3 views
2

の配列からキー値を取得する私は、私が手objectsarrayLodashオブジェクト

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" 
    }... 
]; 

が唯一それがkeys

今、私はこのような配列から値を取得するには、この機能を使用せずに値をだ持っています Iが配列のそれはキー

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(''); 
} 

ずにのみ値を返し、それは数値データのWiを返す渡しますthoutこのようなキー、

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

質問:どのように私はlodashために私のfoo機能を変更できますか?

+0

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

+0

他のソリューション 'out.map((e)=> Object.keys(e).map((key)=> e [key]))' –

答えて

8

使用_.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);

場合やES5以下:​​

関連する問題