const clonObj = (obj, count) => {
const objects = [];
for (let i = 0; i < count; i++) {
objects.push({ ...obj });
objects[i].id = objects[i].id + 1;
}
return [...objects];
};
const result = clonObj({id: 5}, 10);
должно получиться 10 объектов и id начинаться с 5-ки
obj
есть заранее уже поле id
!id
и не использовать цикл for
const clone = (base, count, key = 'id') => [...new Array(count)].map((_, index) => {
const cloned = { ...base };
cloned[key] += index;
return cloned;
});
const a = {
id: 7,
type: 'apple'
};
console.log(clone(a, 8));
console.log(a);
/**
[
{ id: 7, type: 'apple' },
{ id: 8, type: 'apple' },
{ id: 9, type: 'apple' },
{ id: 10, type: 'apple' },
{ id: 11, type: 'apple' },
{ id: 12, type: 'apple' },
{ id: 13, type: 'apple' },
{ id: 14, type: 'apple' }
]
{ id: 7, type: 'apple' }
*/
const cloneObject = (o, count = 1) => {
const objects = new Array(count).fill(o);
return objects.map((obj, index) => ({ ...obj, id: obj.id + index }));
};
{ ...obj }
используй JSON.parse(JSON.stringify(obj))
, если объекты сложные (их свойства являются также объектами), но без методов или что-нибудь типа https://lodash.com/docs/4.17.15#cloneDeep если есть методы.for (let i = 0, id = obj.id+1; i < count; i++, id++) {
const clone = {...JSON.parse(JSON.stringify(obj)), id}
objects.push(clone);
}