使用新键创建对象并分配相同的数组

Create object with new key and assign same array

您有以下优化方案吗

假设,

x = { users: [ {id: 1}, {id:2}, {id:3} ] }

我想创建一个具有相同值的新键,输出应该是,

{ users: { list: [ {id: 1}, {id:2}, {id:3} ], count: 3 }

仅使用 JS 或 Underscore 一行代码w/o任何额外的努力。

我知道其他技巧可以做到这一点,但我们有相同的解决方案吗?
帮助赞赏...
谢谢

当然,只需将 属性 定义为对象

const obj = {
  users: [{
    id: 1
  }, {
    id: 2
  }, {
    id: 3
  }]
};
obj.users = { list: obj.users, count: obj.users.length };
console.log(obj);

虽然我建议关注代码的清晰度而不是线路保护

我不确定为什么这是一个优化的解决方案,因为这是一个简单的 JavaScript 问题:

let x = { users: [{ id: 1 }, { id: 2 }, { id: 3 }] };
let result = {
  users: {
    list: x.users,
    count: x.users.length
  }
};

console.log(result);

创建对象,并将x数组赋值给list。但是,count 应该是 getter,因为 list 长度可能会改变:

const x = { users: [{ id: 1 }, { id: 2 }, { id: 3 }] };
const result = {
  users: {
    list: x.users,
    get count() { return this.list.length; }
  }
};

console.log(JSON.stringify(result));

result.users.list.push({ id: 4 });

console.log(JSON.stringify(result));