数组到对象es6 javascript

数组到对象es6 javascript,javascript,ecmascript-6,destructuring,Javascript,Ecmascript 6,Destructuring,我想看看在es6中是否有一种更小的方法可以将数组转换为对象(我不必担心跨浏览器) 我目前有: function (values) // values being an array. { let [videos, video_count, page] = values; let data = { videos, video_count, page }; someFunctions(data); moreFunctions(data); } 但是我想知道是否可

我想看看在es6中是否有一种更小的方法可以将数组转换为对象(我不必担心跨浏览器)

我目前有:

function (values) // values being an array.
{   
    let [videos, video_count, page] = values;
    let data = { videos, video_count, page };
    someFunctions(data);
    moreFunctions(data);
}
但是我想知道是否可以删掉函数的第一行,
let[videos….]
part。然后以某种方式内联进行转换

我读了一遍,但在那里看不到。(但我可能理解错了)我真的不够聪明去理解

我怀疑这是不可能的,以上已经是我能做到的最简单的了。
但是如果我可以不创建
视频
视频计数
页面
tmp变量,我会更高兴。

对于给定的属性和名称,这可能是实现所需结果的最短方法

但是,如果有更多字段,可以使用
reduce
避免重复。但它的可读性不如分解结构:

let data = values.reduce((prev, val, index) => Object.assign(prev, {[["videos", "video_count", "page"][index]]: val} ), {});
然后,您可以将其抽象为通用函数:

const value=[“test1”、“test2”、“test3”];
常量mapArrayToObject=(数组,字段)=>
array.reduce(
(prev,val,index)=>Object.assign(prev,{[fields[index]]:val}),
{}
);
const data=mapArrayToObject(值,[“视频”、“视频计数”、“页面]);

控制台日志(数据)您可以在函数参数中对其进行解构

function myFunc([ videos, video_count, page ])
{   
    let data = { videos, video_count, page };
    someFunctions(data);
    moreFunctions(data);
}

myFunc(values);
我用这种技术做了很多数据抽象

//基本抽象
常数比=(n,d)=>({n,d});
常量numer=({n})=>n;
常数denom=({d})=>d;
//使用选择器的复合抽象
常数比率D=(x,y)=>比率(
数字(x)*数字(y)+数字(y)*数字(x),
德诺姆(x)*德诺姆(y)
);
//如果你觉得懒惰,也可以跳过选择器
常量printRatio=({n,d})=>`${n}/${d}`;

log(打印比率(比率(1,3),比率(1,4));/=7/12
总是可以用老式的方式来做:
var data={videos:values[0],video\u count:values[1],page:values[2]}这是我考虑过的,但我想看看是否有es6方法。似乎有一种方法可以实现我想要的几乎所有功能,我想我找到了一个更合适的用例。好吧,无论哪种方法,你都必须命名你的属性值,它们不会凭空出现。这仍然会以tmp变量结束?虽然
values
现在已经不存在了,但我主要想删除的三个仍然存在。这比@CodingIntigue的答案要好得多-哎哟。不过你没有错,可读性更强。@codingtrigue我真的没有恶意;我正处于一个非常恼人的任务中,否则可能会更加巧妙地措辞。“纳奥米克没有冒犯,这不是一个错误的声明!”naomik供你参考,最后我在函数参数中进行了分解。它看起来是迄今为止最整洁的。非常感谢你。