使用新键创建对象并分配相同的数组
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));
您有以下优化方案吗
假设,
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));