如何將 Array 轉成 Object ?

栏目: JavaScript · 发布时间: 6年前

内容简介:實務上 Function 的 parameter 大都使用 Object,但資料可能是 Array,此時我們就必須將 Array 轉成 Object,但 ECMAScript 並沒有內建這樣的功能,必須自行實作。ECMAScript 5直接使用

實務上 Function 的 parameter 大都使用 Object,但資料可能是 Array,此時我們就必須將 Array 轉成 Object,但 ECMAScript 並沒有內建這樣的功能,必須自行實作。

Version

ECMAScript 5

Imperative

const data = [
  {key: 'Sam', value: 11},
  {key: 'Kevin', value: 22},
  {key: 'John', value: 33},
];

const result = {};
for(let index = 0; index < data.length; index++)
  result[data[index].key] = data[index].value;

console.log(result);

直接使用 for loop ,其中 ECMAScript 可用 data[variable] = value 方式新增 key / value。

如何將 Array 轉成 Object ?

Functional

const data = [
  {key: 'Sam', value: 11},
  {key: 'Kevin', value: 22},
  {key: 'John', value: 33},
];

const reducer = (accm, item) => ({...accm, [item.key]: item.value});
const result = data.reduce(reducer, {});

console.log(result);

相同的需求,若使用 Functional 寫法,就會使用 Array.prototype.reduce()

...obj 為 ECMAScript 2015 的 Object Spread,將展開目前的 object。

[item.key]: item.value

乍看很 tricky,原本 [variable]: value 為新增 object 的一對 key / value,將 variable 以 item.key 取代而已。

如何將 Array 轉成 Object ?

Conclusion

  • 若要將 array 轉 object,最標準方式就是使用 reduce()

Reference

Chris Burgin , Rewriting JavaScript: Converting an Array of Objects to an Object


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Clean Architecture

Clean Architecture

Robert C. Martin / Prentice Hall / 2017-9-20 / USD 34.99

Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”) By applying universal rules of software architecture, you can dramatically improve developer producti......一起来看看 《Clean Architecture》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具