[英]How to convert object into array with lodash
我有下面的對象
{
"holdings": [
{
"label": "International",
"value": 6
},
{
"label": "Federal",
"value": 4
},
{
"label": "Provincial",
"value": 7
}
]
}
我想用lodash將它轉換為下面的對象
{
"holdings": [
[
"International",
6
],
[
"Federal",
4
],
[
"Provincial",
7
],
[
"Corporate",
7
]
]
}
有沒有辦法改變它。 請建議。
如果你只想使用lodash,那么你可以使用_.mapValues
和_.values
來獲得結果,就像這樣
console.log(_.mapValues(data, _.partial(_.map, _, _.values)));
// { holdings: [ [ 'International', 6 ], [ 'Federal', 4 ], [ 'Provincial', 7 ] ] }
這樣可以在沒有部分功能的情況下編寫
console.log(_.mapValues(data, function(currentArray) {
return _.map(currentArray, _.values)
}));
// { holdings: [ [ 'International', 6 ], [ 'Federal', 4 ], [ 'Provincial', 7 ] ] }
這是遞歸工作的(如果你想保留它,必須在holdings
屬性上調用)並“理解”嵌套對象和嵌套數組。 (香草JS):
var source = { "holdings": [ { "label": "International", "value": 6 }, { "label": "Federal", "value": 4 }, { "label": "Provincial", "value": 7 } ] } function ObjToArray(obj) { var arr = obj instanceof Array; return (arr ? obj : Object.keys(obj)).map(function(i) { var val = arr ? i : obj[i]; if(typeof val === 'object') return ObjToArray(val); else return val; }); } alert(JSON.stringify(ObjToArray(source.holdings, ' ')));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.