所以,我在上次面试中完成了一项很小但对我来说很难的任务。我只是重新设置了如何解决它。我认为我们需要在这个任务中实现递归,但我不清楚。
任务:
let arr = [{name: 'width', value: 300}, {name: 'height', value: 100}];
在输出上我们必须有:
let obj = {width:300, height: 100};
数组对象的数量可以是无限的。
附:
如果您向我提供有关如何完成此任务的知识链接,我将很高兴。
谢谢。
使用该函数的替代方案reduce
简要说明
- 功能
Array.prototype.reduce
循环一个数组,为每个对象应用一个处理程序。
- 累加器
a
将包含每次迭代的结果。
- 功能
converter
接收累加器和当前对象。
- This
Object.assign(a, {[name]: value})
为当前累加器分配一个新属性。
-
计算属性名称
{[name]: value}
该代码将构建一个对象,如下所示:
{ width: 300 }
let arr = [{name: 'width', value: 300},{name: 'height', value: 100}],
converter = (a, {name, value}) => (Object.assign(a, {[name]: value})),
obj = arr.reduce(converter, {});
console.log(obj);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://codepen.io/synthet1c/pen/KyQQmL.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)