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 次 |
最近记录: |