Javascript 如何使用配置对数组进行排序
如何使用Ramda上的配置值对数组文件进行排序 我尝试使用R.map,然后添加一个条件R.includes,如果它为真,则返回值R 但我一直在得到[Function],[Function],[Function]] 我使用的代码Javascript 如何使用配置对数组进行排序,javascript,node.js,ramda.js,Javascript,Node.js,Ramda.js,如何使用Ramda上的配置值对数组文件进行排序 我尝试使用R.map,然后添加一个条件R.includes,如果它为真,则返回值R 但我一直在得到[Function],[Function],[Function]] 我使用的代码 args = [ 'BBQ', 'Tuna', 'Cake', 'Wood' ] config = [ { foodType: 'Tuna' }, { foodType: 'BBQ' }, { foodType: 'Cake'
args = [ 'BBQ', 'Tuna', 'Cake', 'Wood' ]
config = [ { foodType: 'Tuna' },
{ foodType: 'BBQ' },
{ foodType: 'Cake' } ]
const getPriority = R.curry((config, args) =>
R.pipe(
R.map(
R.pipe(
R.prop('foodType'),
R.ifElse(
R.includes(args),
R.always
)
)
),
R.flatten,
)(config)
);
Expected result is [ 'Tuna', 'BBQ', 'Cake' ]
知道我为什么一直得到[[Function]、[Function]、[Function]]吗?我想从我对代码的了解来猜测一下您的需求。在我看来,您需要
config
中的食物类型,这些食物类型也可以在args
中找到,并按照它们在config
中出现的顺序进行排序。是这样吗
如果是这样的话,这个代码似乎是有效的:
const getPriority=(args)=>(config)=>
config.reduce((a,{foodType})=>args.includes(foodType)?[…a,foodType]:a,[])
const args=[‘烧烤’、‘金枪鱼’、‘蛋糕’、‘木头’]
const config=[{foodType:'Tuna'},
{foodType:'Sprouts'},//已添加--并非所有内容都在输出中
{foodType:'BBQ'},
{foodType:'Cake'}]
log(getPriority(args)(config))
我试图根据我对代码的了解来猜测您的需求。在我看来,您需要config
中的食物类型,这些食物类型也可以在args
中找到,并按照它们在config
中出现的顺序进行排序。是这样吗
如果是这样的话,这个代码似乎是有效的:
const getPriority=(args)=>(config)=>
config.reduce((a,{foodType})=>args.includes(foodType)?[…a,foodType]:a,[])
const args=[‘烧烤’、‘金枪鱼’、‘蛋糕’、‘木头’]
const config=[{foodType:'Tuna'},
{foodType:'Sprouts'},//已添加--并非所有内容都在输出中
{foodType:'BBQ'},
{foodType:'Cake'}]
log(getPriority(args)(config))
首先,您错误地使用了ifElse
。它有三个参数:条件函数、结果函数和替代函数——所有参数都采用相同的输入值。然而,我一点也不清楚你想做什么。pulk('foodType',config)
是否没有提供您想要的内容?我只需要使用config对arg进行排序,如果它有Tuna,则第一个值将是Tuna,依此类推,我认为pulk将无法使用该值,但会尝试进行排序,但您并不是简单地对arg进行排序。你也在过滤它们,对吗?否则,建议的输出中的'Wood'
在哪里?首先,您错误地使用了ifElse
。它有三个参数:条件函数、结果函数和替代函数——所有参数都采用相同的输入值。然而,我一点也不清楚你想做什么。pulk('foodType',config)
是否没有提供您想要的内容?我只需要使用config对arg进行排序,如果它有Tuna,则第一个值将是Tuna,依此类推,我认为pulk将无法使用该值,但会尝试进行排序,但您并不是简单地对arg进行排序。你也在过滤它们,对吗?否则,'Wood'
在您建议的输出中的什么位置?