Javascript 类型';无效[]和#x27;不可分配给类型';Foo[]和#x27;
我正在使用ramdaJavascript 类型';无效[]和#x27;不可分配给类型';Foo[]和#x27;,javascript,reactjs,angular,typescript,ramda.js,Javascript,Reactjs,Angular,Typescript,Ramda.js,我正在使用ramdamap和forEach方法,但当我将鼠标悬停在结果变量上时。它给出了以下错误: 类型“void[]”不能分配给类型“Foo[]”。 数据类型Foo,并且代码是正确的,对此我有信心 我知道我缺少一条return语句。我不知道该在哪里补充。 有人能帮我解决这个问题吗 interface Foo { a: number; d: number; c: number; } const col = ["a", "d", "c
map
和forEach
方法,但当我将鼠标悬停在结果
变量上时。它给出了以下错误:
类型“void[]”不能分配给类型“Foo[]”。
数据类型Foo
,并且代码是正确的,对此我有信心
我知道我缺少一条return
语句。我不知道该在哪里补充。
有人能帮我解决这个问题吗
interface Foo {
a: number;
d: number;
c: number;
}
const col = ["a", "d", "c"];
const arr = [{ a: 1, c: 2, d: 3 }];
const ress: Foo[] = map(_item => {
const item = _item;
forEach(c => {
const val = item[c];
delete item[c];
item[c] = val;
}, col);
}, arr);
映射函数总是将一个对象映射到另一个对象。意味着它拿了一些东西,还了一些东西 但在这里,你不会归还任何东西,因为它是无效的 我想应该是这样
const col = ["a", "d", "c"];
const arr = [{ a: 1, c: 2, d: 3 }];
const ress: Foo[] = map(_item => {
const item = _item;
forEach(c => {
const val = item[c];
delete item[c];
item[c] = val;
}, col);
return item
}, arr);
};
映射函数总是将一个对象映射到另一个对象。意味着它拿了一些东西,还了一些东西 但在这里,你不会归还任何东西,因为它是无效的 我想应该是这样
const col = ["a", "d", "c"];
const arr = [{ a: 1, c: 2, d: 3 }];
const ress: Foo[] = map(_item => {
const item = _item;
forEach(c => {
const val = item[c];
delete item[c];
item[c] = val;
}, col);
return item
}, arr);
};
你可以写得简单得多:
const col=[“a”、“d”、“c”];
常量arr=[{a:1,c:2,d:3}];
const项目=(列,列)=>
arr.map(o=>col.reduce((a,b)=>({…a[b]:o[b]}),{}))
控制台日志(项目(col、arr))
//~>[{a:1,d:3,c:2}]
你可以写得简单得多:
const col=[“a”、“d”、“c”];
常量arr=[{a:1,c:2,d:3}];
const项目=(列,列)=>
arr.map(o=>col.reduce((a,b)=>({…a[b]:o[b]}),{}))
控制台日志(项目(col、arr))
//~>[{a:1,d:3,c:2}]
您没有从映射返回任何东西。不清楚你想要什么do@DanielA.White你现在能看一下吗。我更新了代码你必须在map中有一个return
语句,否则你就得不到任何回报。@M-N是的,我知道,但我不知道在哪里添加它。你能修好吗?@ScottSauyet是的,先生,这是一个旧帐户,但我没有使用它。我最近很活跃。当然,我会记住你的话,并从现在开始尝试回答你没有从map
返回任何东西。不清楚你想要什么do@DanielA.White你现在能看一下吗。我更新了代码你必须在map中有一个return
语句,否则你就得不到任何回报。@M-N是的,我知道,但我不知道在哪里添加它。你能修好吗?@ScottSauyet是的,先生,这是一个旧帐户,但我没有使用它。我最近很活跃。当然,我会记住你的话,从现在开始我会尽力回答谢谢你的帮助:)谢谢你的帮助:)非常感谢斯科特的帮助。非常感谢:)const col=[“a”、“d”、“c”];常量arr=map(项=>选取(列,项),数据);//[{a:1,c:2,d:3}];项目(col,arr)在项目运行之前,我正在执行拾取和映射操作。我怎样才能把这两个操作组合成一个语句?@newbie:我没有按照你的意思去做。但这听起来似乎是一个不同的问题。我们如何将这两个操作合并为一个?const arr=映射(项=>拾取(列,项),数据);项目(col,arr)?很抱歉,我不能在这里很好地解释它。顺便说一句,非常感谢你的帮助和时间:)非常感谢斯科特的帮助。非常感谢:)const col=[“a”、“d”、“c”];常量arr=map(项=>选取(列,项),数据);//[{a:1,c:2,d:3}];项目(col,arr)在项目运行之前,我正在执行拾取和映射操作。我怎样才能把这两个操作组合成一个语句?@newbie:我没有按照你的意思去做。但这听起来似乎是一个不同的问题。我们如何将这两个操作合并为一个?const arr=映射(项=>拾取(列,项),数据);项目(col,arr)?很抱歉,我不能在这里很好地解释它。顺便说一句,非常感谢您的帮助和时间:)