要求:
const people = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 },
{ name: 'David', age: 25 },
{ name: 'Emily', age: 30 }
];
// Output: {
// 25: [{ name: 'Alice', age: 25 }, { name: 'David', age: 25 }],
// 30: [{ name: 'Bob', age: 30 }, { name: 'Emily', age: 30 }],
// 35: [{ name: 'Charlie', age: 35 }]
// }
代码:
let fn = (arr = []) => {
return arr.reduce((accumulator, currentValue) => {
return accumulator[currentValue.age]
? (accumulator[currentValue.age] = accumulator[currentValue.age].concat(currentValue))
: ((accumulator[currentValue.age] = [currentValue]));
}, {});
};
const people = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 },
{ name: 'David', age: 25 },
{ name: 'Emily', age: 30 }
];
console.log(fn(people));
输出:
[ { name: 'Emily', age: 30 } ]
你的错误在于三元表达式返回的值是数组,而你把这个数组再返回了,导致下一次接受的 accumulator
是数组而不是对象,原对象的信息实际上已经丢失。
function reduceByAge(list = []){
return list.reduce(( reduced, presentItem ) => {
// 获取当前条目的年龄信息
const { age } = presentItem;
// 已经有对应年龄的列表,则获取并命名为 subList
// 没有的话,就给 subList 赋值空数组
const { [age]: subList = [] } = reduced;
// 添加当前条目到数组
subList.push(presentItem);
// 添加到已归并的对象中去
reduced[age] = subList;
return reduced;
}, {});
}
我一直在尝试一些组件,这些组件执行react-cache风格的事情,并在render方法中执行web服务调用,将promise抛出到React.Suspense组件,并在数据存在时重新呈现。它们调用web服务,检查响应,并根据响应呈现或抛出错误到错误边界。我注意到,每当在组件中抛出错误时,它都会呈现两次。第一次callstack看起来正常,第二次callstack包括对invokeGuardedC
本文向大家介绍为什么JavaScript的“ var null”抛出错误而“ var undefined”没有抛出错误?,包括了为什么JavaScript的“ var null”抛出错误而“ var undefined”没有抛出错误?的使用技巧和注意事项,需要的朋友参考一下 Web浏览器会抛出“ var null”错误,因为它是保留的标识符。 您不能在ECMAScript中使用以下文字作为标识符-
Liquibase状态失败:无法从'expectedresult=0SELECT COUNT(*)from USER_ERRORS,其中类型='procedure''解析SqlCheck前置条件。 那个前置条件语法有什么问题?
问题内容: 以下是JSX中我的render方法的一部分-为什么在抛出错误后分号为何?在普通的JavaScript中完全可以 问题答案: 这是因为JSX 表达式仅限于单个表达式。 ..将引发错误。 但是,您可以通过使用两个表达式来解决此问题 如果只有一个表达式,则不需要分号。 如果您希望对此有所了解,可以在返回以逗号分隔的最后一个表达式之前,在表达式中使用鲜为人知的逗号运算符进行一些本地工作: 将显
我正在使用python 2.7。win8上的9。当我尝试使用matplotlib绘图时,出现以下错误: 从pylab导入* 绘图([1,2,3,4]) [matplotlib.lines.Line2D对象位于0x0392A9D0] 我尝试了测试代码“python simple_plot.py--verbose help”,出现了以下警告: $HOME=C:\Users\XX matplotlib数
错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码: