Javascript 如何使用lodash将对象转换为数组
我有一个目标Javascript 如何使用lodash将对象转换为数组,javascript,arrays,object,lodash,Javascript,Arrays,Object,Lodash,我有一个目标 { "holdings": [ { "label": "International", "value": 6 }, { "label": "Federal", "value": 4 }, { "label": "Provincial", "value":
{
"holdings": [
{
"label": "International",
"value": 6
},
{
"label": "Federal",
"value": 4
},
{
"label": "Provincial",
"value": 7
}
]
}
我想用lodash将其转换为下面的对象
{
"holdings": [
[
"International",
6
],
[
"Federal",
4
],
[
"Provincial",
7
],
[
"Corporate",
7
]
]
}
有没有办法改变它。请建议。如果您只想使用lodash,那么您可以使用并获得结果,如下所示
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 ] ] }
同样可以在没有分部函数的情况下编写,如下所示
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
属性),并且“理解”嵌套对象和嵌套数组。(简体中文):
var源={
“控股”:[
{
“标签”:“国际”,
“价值”:6
},
{
“标签”:“联邦”,
“价值”:4
},
{
“标签”:“省级”,
“价值”:7
}
]
}
功能ObjToArray(obj){
var arr=阵列的obj实例;
返回(arr?obj:Object.keys(obj)).map(函数(i){
var val=arr?i:obj[i];
if(typeof val=='object')
返回ObjToArray(val);
其他的
返回val;
});
}
警报(JSON.stringify(ObjToArray(source.holdings.))代码>是否需要使用lodash?是的…但建议您是否有更好的解决方案holdings.map(函数(l){return Object.keys(l).map(函数(v){return l[v]})})