Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用lodash将对象转换为数组_Javascript_Arrays_Object_Lodash - Fatal编程技术网

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]})})