您是否拥有以下优化解决方案。
让我们说,
x = { users: [ {id: 1}, {id:2}, {id:3} ] }
我想创建一个具有相同值的新键,输出应为
{ users: { list: [ {id: 1}, {id:2}, {id:3} ], count: 3 }
只使用JS或Underscore一行代码而不需要额外的努力。
我知道其他技巧也是这样做的,但是我们有同样的一线解决方案吗?
帮助赞赏...
感谢。
答案 0 :(得分:3)
创建对象,并将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));
答案 1 :(得分:2)
当然,只需将属性定义为对象
const obj = {
users: [{
id: 1
}, {
id: 2
}, {
id: 3
}]
};
obj.users = { list: obj.users, count: obj.users.length };
console.log(obj);
我建议尽量专注于代码清晰度而不是在线保护
答案 2 :(得分:2)
我不确定为什么这是优化解决方案,因为这是一个简单的普通JavaScript问题:
let x = { users: [{ id: 1 }, { id: 2 }, { id: 3 }] };
let result = {
users: {
list: x.users,
count: x.users.length
}
};
console.log(result);