Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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_Nested_Lodash - Fatal编程技术网

Javascript 使用Lodash拾取嵌套对象的关键帧

Javascript 使用Lodash拾取嵌套对象的关键帧,javascript,nested,lodash,Javascript,Nested,Lodash,我有一个这样的结构: areas = { 'sample-id': { title: 'Area 1', type: 'outdoor', boundaries: [ 'fm-86071.92984676428', 'fm-33663.81255808968', 'fm-22124.724922206497', 'fm-98002.82095021005'

我有一个这样的结构:

      areas = {
        'sample-id': {
          title: 'Area 1',
          type: 'outdoor',
          boundaries: [
            'fm-86071.92984676428', 'fm-33663.81255808968',
            'fm-22124.724922206497', 'fm-98002.82095021005'
          ]
        },
        'sample-id-2': {
          title: 'Area 2',
          type: 'meetingroom',
          boundaries: [
            'fm-39517.47084731459', 'fm-79087.74683350614',
            'fm-39153.28644344014', 'fm-38873.63204123109',
            'fm-67952.07827771583', 'fm-53210.58304837807',
          ]
        }
      };
我需要获得一个由每个区域的所有
title
键组成的数组,即所需的输出=
['area 1','area 2']

我发现,
\uuu.pull
已被删除,取而代之的是
\uuu.map
,但使用

_.map(areas, 'title')
…需要区域成为一个数组。
我还认为,使用
.values
将对象转换为数组,然后使用
.map
应该可以,但是有没有直接或首选的方法?
编辑:我还想保留键的顺序
编辑2:好的,我忘记了对象中的键没有顺序,所以我想我会使用
Array.prototype.sort()

Object.keys(areas).map(k => areas[k].title)
在这种情况下,我使用

Object.keys(areas).map(k => areas[k].title)

您可以使用
Object.values()

区域={
“样本id”:{
标题:“1区”,
类型:'户外',
边界:[
‘fm-86071.92984676428’、‘fm-33663.81255808968’,
‘fm-22124.724922206497’、‘fm-98002.82095021005’
]
},
“样本-id-2”:{
标题:“区域2”,
类型:“会议室”,
边界:[
‘fm-39517.47084731459’、‘fm-79087.74683350614’,
‘fm-39153.28644344014’、‘fm-38873.63204123109’,
‘fm-67952.07827771583’、‘fm-53210.58304837807’,
]
}
};
让returnValue=Object.values(areas.map)(value=>value.title)

console.log(returnValue)
您可以使用
Object.values()

区域={
“样本id”:{
标题:“1区”,
类型:'户外',
边界:[
‘fm-86071.92984676428’、‘fm-33663.81255808968’,
‘fm-22124.724922206497’、‘fm-98002.82095021005’
]
},
“样本-id-2”:{
标题:“区域2”,
类型:“会议室”,
边界:[
‘fm-39517.47084731459’、‘fm-79087.74683350614’,
‘fm-39153.28644344014’、‘fm-38873.63204123109’,
‘fm-67952.07827771583’、‘fm-53210.58304837807’,
]
}
};
让returnValue=Object.values(areas.map)(value=>value.title)
console.log(returnValue)
Lodash的
\u.map()
也适用于对象:

var区域={“样本id”:{“标题”:“区域1”,“类型”:“室外”,“边界”:[“fm-86071.92984676428”,“fm-33663.81255808968”,“fm-22124.724922206497”,“fm-98002.82095021005”],“样本id-2”:{“标题”:“区域2”,“类型”:“会议室”,“边界”:[“fm-39517.47084731459”,“fm-79087.74683350614”,“fm-39153.28644344014”,“fm-12320438109”,“fm-67952.07827771583”、“fm-53210.58304837807”]};
var result=uz.map(区域,'title');
console.log(结果);
Lodash的
..map()
也适用于对象:

var区域={“样本id”:{“标题”:“区域1”,“类型”:“室外”,“边界”:[“fm-86071.92984676428”,“fm-33663.81255808968”,“fm-22124.724922206497”,“fm-98002.82095021005”],“样本id-2”:{“标题”:“区域2”,“类型”:“会议室”,“边界”:[“fm-39517.47084731459”,“fm-79087.74683350614”,“fm-39153.286444014”,“fm-12338109”fm-67952.07827771583,“fm-53210.58304837807”]};
var result=uz.map(区域,'title');
console.log(结果);

无法保留键的顺序。JavaScript对象不保留其顺序。如果您想要有序键,则应使用数组而不是对象。但是,可以按名称对键进行排序。正如您所提到的
.map(区域,'title'))
也适用于对象。请参见我的答案。键的顺序无法保留。JavaScript对象不保留其顺序。如果您想要有序键,则应使用数组而不是对象。但是,可以按名称对键进行排序。正如您提到的
。.map(区域,'title')
也适用于对象。请参阅我的答案。如果您关心的是对象顺序,则无法完成。请看我对问题的评论如果您关心的是对象顺序,则无法完成。请看我对问题的评论