带有forEach的JavaScript ramda映射函数

带有forEach的JavaScript ramda映射函数,javascript,dictionary,object,ramda.js,Javascript,Dictionary,Object,Ramda.js,我想知道为什么ramda的map函数没有像我所希望的那样运行,即“dataAllAgesAllF”是一个包含5个以上键值对的对象,我只想选择那些与“ageGroupData”键匹配的键值对。列表行很好地打印出5个正确的键,如果我显式地编写x[ageGroupFNames[0]]而不是arrow函数,映射行就会工作 const ageGroupFNames = Object.keys(ageGroupData); const dataAllAges5F = map((x) => [ageGr

我想知道为什么ramda的map函数没有像我所希望的那样运行,即“dataAllAgesAllF”是一个包含5个以上键值对的对象,我只想选择那些与“ageGroupData”键匹配的键值对。列表行很好地打印出5个正确的键,如果我显式地编写x[ageGroupFNames[0]]而不是arrow函数,映射行就会工作

const ageGroupFNames = Object.keys(ageGroupData);
const dataAllAges5F = map((x) => [ageGroupFNames.forEach((FName) => x[FName])], dataAllAgesAllF);
ageGroupFNames.forEach((FName) => console.log(FName));
ageGroupData看起来像是打印到控制台的:

{F_team_ka: 7.3671186441, F_mult_ka: 6.3776666667, F_quic_ka: 6.3113333333, F_lang_ka: 5.9703333333, F_focu_ka: 5.9276666667}
F_focu_ka: 5.9276666667
F_lang_ka: 5.9703333333
F_mult_ka: 6.3776666667
F_quic_ka: 6.3113333333
F_team_ka: 7.3671186441
__proto__: Object
当前dataAllAges5F打印出:

0: Array(1)
0: undefined
length: 1
__proto__: Array(0)
length: 1
__proto__: Array(0)
因此,我希望dataAllAges5F看起来与ageGroupData完全相同,但具有不同的数值-实际上,我最终希望将这两者结合起来,使用Billboard.js进行绘图。

您可以使用该方法而不是map来返回包含指定数组中所有键的
dataAllAgesAllF
对象的子集(即:来自
ageGroupData
对象的键数组):

constagegroupdata={F_team_ka:7.3671186441,F_mult_ka:6.37766667,F_quic_ka:6.31133333333,F_lang_ka:5.97033333,F_focu_ka:5.9276666667};
const dataAllAgesAllF={foo:1,bar:1,baz:1,qux:1,F_team_ka:2,F_mult_ka:3,F_quic_ka:4,F_lang_ka:5,F_focu_ka:6};
const dataAllAges5F=拾取(键(ageGroupData),dataAllAgesAllF);
console.log(dataAllAges5F);


const{keys,pick}=R;
您可以共享
ageGroupData
、您当前获得的输出以及您想要的输出吗?@evolutionxbox edited谢谢,但您已经使用了图像。请删除它们并用文本替换它们?@evolutionxbox done
Array.prototype.forEach
没有返回值,顺便说一句
const dataAllAges5F = pick(keys(ageGroupData), dataAllAgesAllF);
console.log(dataAllAges5F);