Max*_*fen 3 javascript arrays recursion
所以,在我上次的采访中,我有一个非常小的但很难完成的任务.我只是想知道如何解决它.我认为我们需要在这个任务中实现递归,但我不清楚它.
任务:
let arr = [{name: 'width', value: 300}, {name: 'height', value: 100}];
Run Code Online (Sandbox Code Playgroud)
在输出时我们必须:
let obj = {width:300, height: 100};
Run Code Online (Sandbox Code Playgroud)
数组对象的数量可以是无穷大.
PS如果您向我提供有关如何完成此任务的知识链接,我将很高兴.
谢谢.
使用该功能的替代方案 reduce
Array.prototype.reduce循环一个数组,为每个对象应用一个处理程序.a将包含每次迭代的结果.converter接收累加器和当前对象.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);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)
<script src="https://codepen.io/synthet1c/pen/KyQQmL.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |