Javascript 按属性名称从另一个数组中拾取数组
我有一个这样的数组 我想按属性名称拾取数组项,我使用lodash: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
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];