Javascript 使用ES6/Harmony以FP方式创建具有相同值和关键帧的贴图

Javascript 使用ES6/Harmony以FP方式创建具有相同值和关键帧的贴图,javascript,functional-programming,ecmascript-6,ecmascript-harmony,Javascript,Functional Programming,Ecmascript 6,Ecmascript Harmony,给定一组“苹果”、“香蕉”和“橙色”,创建以下内容: {“苹果”:“苹果”、“香蕉”:“香蕉”、“橙色”:“橙色”} 也就是说,每个字符串都成为键和值 (顺便说一句,Facebook的小JS实用程序在其流量示例中就是这么做的。) 是否有一种使用ES6/Harmony的函数式编程风格的单线方式,例如: [“苹果”、“香蕉”、“橙色”].地图(v=>v:v) 而不是一种非功能性编程方式,例如: let o={};对于(让v代表[“苹果”、“香蕉”、“橘子”)o[v]=v这个怎么样,.reduce(函

给定一组“苹果”、“香蕉”和“橙色”,创建以下内容:

{“苹果”:“苹果”、“香蕉”:“香蕉”、“橙色”:“橙色”}

也就是说,每个字符串都成为键和值

(顺便说一句,Facebook的小JS实用程序在其流量示例中就是这么做的。)

是否有一种使用ES6/Harmony的函数式编程风格的单线方式,例如:

[“苹果”、“香蕉”、“橙色”].地图(v=>v:v)

而不是一种非功能性编程方式,例如:


let o={};对于(让v代表[“苹果”、“香蕉”、“橘子”)o[v]=v
这个怎么样,
.reduce(函数(obj,str){obj[str]=str;返回obj;},{})

例如:

var arry = ["Apple", "Banana", "Orange"];
var map = arry.reduce(function(obj, str){obj[str] = str; return obj;}, {});

很好,谢谢我当时认为这是不可能的但这是一个很好的答案。期待看到这方面的性能指标,期待JS有更多的FP方法,如foldLeft/Right。
['Apple','Banana','Orange']。reduce((m,v)=>{m[v]=v;return m;},{};//使用箭头函数
fwiw,在Undescore/Lodash中(支持下至ES3)var arr=[“苹果”、“香蕉”、“橙色”];\。对象(arr,arr)