Конструктор не знает о номере экземпляра объекта, так как уникальные идентификаторы обычно генерируются и присваиваются во время создания объекта. Однако вы можете использовать класс для создания объектов с уникальными идентификаторами. Вот пример кода, который генерирует массив объектов, каждый из которых содержит уникальный идентификатор:
class MyObject {
constructor(id, otherProperty) {
this.id = id;
this.otherProperty = otherProperty;
}
}
function generateObjectsArray() {
const objectsArray = [];
for (let i = 1; i <= 25; i++) {
const objectId = i; // Уникальный идентификатор объекта
const otherProperty = "Другое свойство " + i; // Другое свойство объекта
const newObj = new MyObject(objectId, otherProperty);
objectsArray.push(newObj);
}
return objectsArray;
}
const myArray = generateObjectsArray();
console.log(myArray);
Здесь класс MyObject определяет объекты с двумя свойствами: id и otherProperty. В функции generateObjectsArray() мы создаем массив из 25 объектов, где каждый объект имеет уникальный идентификатор от 1 до 25. Вы можете заменить otherProperty на любое другое свойство или добавить сколько угодно свойств по своему усмотрению.
Переменная myArray будет содержать сгенерированный массив объектов с уникальными идентификаторами.
---------------------------
Если же вам все таки нужен пример функции для решения этой нетривиальной задачи, то:
const objectsArray = Array.from({ length: 25 })
.map((_, index) => index + 1)
.map(id => {
const sum = [...Array(Math.floor(Math.random() * 10) + 1)].reduce((acc, _) => acc + Math.floor(Math.random() * 100) + 1, id);
let emoji = '';
if (sum % 2 === 0) {
const emojis = ['', '', '', '', ''];
emoji = emojis[Math.floor(Math.random() * emojis.length)];
} else {
const emojis = ['', '', '', '', ''];
emoji = emojis[Math.floor(Math.random() * emojis.length)];
}
return { id, sum, emoji };
});
console.log(objectsArray);
- Сначала мы снова используем метод Array.from() для создания массива из 25 элементов, но без передачи функции обратного вызова.
- Затем мы используем метод map() для преобразования индекса элемента в уникальный идентификатор id.
- Далее мы снова используем метод map(), чтобы каждый объект массива получил дополнительные свойства sum и emoji.
- Чтобы вычислить значение sum, мы создаем новый массив с случайной длиной от 1 до 10 элементов с помощью Array(Math.floor(Math.random() * 10) + 1), затем с помощью метода reduce() суммируем случайные числа от 1 до 100.
- Затем выбирается случайное эмодзи из массива эмодзи в зависимости от четности значения sum.
- Наконец, мы возвращаем объект с id, sum и emoji в каждой итерации.
- Полученный массив объектов objectsArray будет содержать 25 объектов, каждый из которых будет иметь уникальный идентификатор id, случайно сгенерированную сумму sum, а также случайно выбранное эмодзи emoji.
PS: если emoji не нужно, то можно удалить часть кода.