如何將 Array 轉成 Object ?
栏目: JavaScript · 发布时间: 7年前
内容简介:實務上 Function 的 parameter 大都使用 Object,但資料可能是 Array,此時我們就必須將 Array 轉成 Object,但 ECMAScript 並沒有內建這樣的功能,必須自行實作。ECMAScript 5直接使用
實務上 Function 的 parameter 大都使用 Object,但資料可能是 Array,此時我們就必須將 Array 轉成 Object,但 ECMAScript 並沒有內建這樣的功能,必須自行實作。
Version
ECMAScript 5
Imperative
const arr = [
{key: 'Sam', value: 11},
{key: 'Kevin', value: 22},
{key: 'John', value: 33},
];
const obj = {};
for(let index = 0; index < arr.length; index++)
obj[arr[index].key] = arr[index].value;
console.log(obj);
直接使用 for loop ,其中 ECMAScript 可用 obj[variable] = value 方式新增 key / value。
Functional
const arr = [
{key: 'Sam', value: 11},
{key: 'Kevin', value: 22},
{key: 'John', value: 33},
];
const reducer = (obj, item) => ({...obj, [item.key]: item.value});
const obj = arr.reduce(reducer, {});
console.log(obj);
相同的需求,若使用 Functional 寫法,就會使用 Array.prototype.reduce() 。
...obj 為 ECMAScript 2015 的 Object Spread,將展開目前的 object。
[item.key]: item.value
乍看很 tricky,原本 [variable]: value 為新增 object 的一對 key / value,將 variable 以 item.key 取代而已。
Conclusion
- 若要將 array 轉 object,最標準方式就是使用
reduce()
Reference
Chris Burgin , Rewriting JavaScript: Converting an Array of Objects to an Object
以上所述就是小编给大家介绍的《如何將 Array 轉成 Object ?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Introduction to Programming in Java
Robert Sedgewick、Kevin Wayne / Addison-Wesley / 2007-7-27 / USD 89.00
By emphasizing the application of computer programming not only in success stories in the software industry but also in familiar scenarios in physical and biological science, engineering, and appli......一起来看看 《Introduction to Programming in Java》 这本书的介绍吧!