我有以下代码:
map(res => {
const finalRows = res.reduce((acc, curr) => {
return [
...acc,
...curr.map(row => ({
...row,
chevron: ' ',
}))
]
}, []);
.....
'res'看起来像一个对象数组,这些对象是行。使用reduce(),它应该返回一个数组,但是我正在使用map遍历当前的每一行并添加一个“ Chevron”列。我觉得也许它尚不知道它正在返回一个数组,并且仍然将其视为对象,因此我收到了错误“ curr.map不是函数”,但是,我不确定这是否是真实的问题。有什么想法吗?
答案 0 :(得分:0)
让我们深入了解您的代码:
res
是一个对象数组.reduce
的回调的第二个参数是所提供数组中的当前项curr
是res
的一项但是在这里,curr
似乎不是数组,而是另一种类型的对象(如JSON),这就是为什么会出现此错误的原因。
只有在res
是一个数组数组的情况下,它才能起作用,因为无法在非数组对象上调用.map
。
此外,另一种更简单的代码编写方式是:
// For each row of the `res` array...
res.map(row => {
// Clone it, so the new row isn't linked to the existing one
const newRow = row.slice(0);
// Set its 'chevron' property
newRow.chevron = ' ';
// Return the new row
return newRow;
}); // Here we get the new array of objects