在javascript中创建对象时如何保存动态键引用?

时间:2018-10-22 11:32:12

标签: javascript

有没有一种方法可以使此过程在对象初始化期间发生?

//uuid() returns a new uuid
let Obj = {
  [uuid()]:{
    id: (get the ID that was just created)
  }
}

所以输出应该类似于

Obj {
  5cb93583: {
  id: 5cb93583
  }
}

3 个答案:

答案 0 :(得分:4)

您可以使用立即调用的(箭头)函数以及其他一些ES6语法:

let obj = (id => ({ [id]: {id} }))(uuid());

作为旁注:最好将camelCase用作变量名,并只为构造函数/类保留首字母大写表示法。

答案 1 :(得分:1)

是的,您可以简单地使用一个变量来存储uuid(),然后

let key = uuid();
let obj = {
   [key]:{
      id: key
   }

确保您keystring

答案 2 :(得分:0)

在给定的IIFE之外,您可以为其使用显式函数,因为这种方法是可重用的。

const
    getUUID = _ => Math.floor(Math.random() * (1 << 16)).toString(16),
    getObject = id => ({ [id]: { id } });

let object1 = getObject(getUUID()),
    object2 = getObject(getUUID());

console.log(object1);
console.log(object2);