Javascript 按属性名称从另一个数组中拾取数组

Javascript 按属性名称从另一个数组中拾取数组,javascript,arrays,typescript,Javascript,Arrays,Typescript,我有一个这样的数组 我想按属性名称拾取数组项,我使用lodash: const result = _.map(this.thing, _.property('groups')).filter(x => x !== undefined); 但我得到的结果是数组的数组 我需要的只是单个选定的属性数组 你知道如何做到这一点吗?试试这个: const arr=[{'groups':['item1','item2']}, {'categories':['x','y']} ] var-oup

我有一个这样的数组

我想按属性名称拾取数组项,我使用lodash:

const result = _.map(this.thing, _.property('groups')).filter(x => x !== undefined);
但我得到的结果是数组的数组

我需要的只是单个选定的属性数组

你知道如何做到这一点吗?

试试这个:

const arr=[{'groups':['item1','item2']},
{'categories':['x','y']}
]
var-ouptut=arr.find(项=>{
returnitem[Object.keys(item.find)(key=>key=='groups')]
})
console.log(ouptut)
尝试以下操作:

const arr=[{'groups':['item1','item2']},
{'categories':['x','y']}
]
var-ouptut=arr.find(项=>{
returnitem[Object.keys(item.find)(key=>key=='groups')]
})
console.log(ouptut)
试试这个>>>

var a=[{“p1”:[3,4]},{“p2”:[6,7]}];
函数getArr(arr,键){
var-res=[];
用于(arr的var v){
如果(v[键]!=未定义){
res=v[键];中断;
}
};
返回res;
}
控制台日志(getArr(a,“p1”)试试这个>>>

var a=[{“p1”:[3,4]},{“p2”:[6,7]}];
函数getArr(arr,键){
var-res=[];
用于(arr的var v){
如果(v[键]!=未定义){
res=v[键];中断;
}
};
返回res;
}

控制台日志(getArr(a,“p1”)如果可以使用ES6/ES7,则可以依靠Object.key和Object.values访问键(即属性名称)和值(要获取的数组):

var-arr=[
{组:[1,2]},
{类别:[1,2,3]},
{子类别:[1,2,3,4]}
];
函数pickArray(propertyName){
var element=arr.find(el=>Object.keys(el)[0]==propertyName)
返回元素?Object.values(元素)[0]:null;
}
var res=pickArray('category');

控制台日志(res)如果可以使用ES6/ES7,则可以依靠Object.key和Object.values访问键(即属性名称)和值(要获取的数组):

var-arr=[
{组:[1,2]},
{类别:[1,2,3]},
{子类别:[1,2,3,4]}
];
函数pickArray(propertyName){
var element=arr.find(el=>Object.keys(el)[0]==propertyName)
返回元素?Object.values(元素)[0]:null;
}
var res=pickArray('category');

控制台日志(res)
谈到第二种方法时,是否有任何方法可以摆脱
if(key==='groups'){console.log(item[key]}
并使整个过程成为返回预期结果的一行程序?修改了关于第二种方法的方法,是否有任何方法可以摆脱
if(key=='groups'){console.log(item[key]}
然后将整个过程变成一行程序,返回预期结果?修改了方法为什么要删除proto?为什么要删除proto?
const output 
   = (Array.from(arr, (obj) => obj['product'], 'product')
        .filter(x => typeof x !== 'undefined'))[0];