@senchkim
Junior Frontend

Как решить данную задачу?

Всем доброго дня!
Я только начал изучать JS - так что пожалуйста не судите строго.
Есть ТЗ к задаче:
1) Создать массив из 100 объектов, у объектов 2 поля name: 'Значение рандомное имя из массива', id: 'Значение рандомное число'. При этом каждый новый объект должен быть уникальным то есть не повторяться!
2) Расширить объект путем добавления к нему поля number: 'Значение рандомное число'.
3) Отсортировать массив с объектами убрать все ключи (Number > 50).
4) Отсортировать массив с объектами по ключу ID.
5) Отсортировать массив с объектами в обратном порядке по Number.

Я тут начал делать, но не могу понять как генерить новый объект и добавлять его в массив(
https://jsfiddle.net/himodoricode/b2xuha5n/

Все заранее спасибо)!
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
В нынешней версии
вашего кода
// Функция получения случайного числа
const getRandomNumber = (() => {
  return Math.floor(Math.random() * 1000);
});

// Функция получения случайного имени
const getRandomName = (() => {
	const arr = ['Alex', 'Bob', 'Mark', 'Peter'];
  let randomNumber = Math.floor(Math.random() * arr.length);
  return arr[randomNumber];
});

// Начальный объект
const obj = {
  name: getRandomName(),
  id: getRandomNumber()
};

// 1.2 Добавление нового поля в объект
obj.number = getRandomNumber();

const randomArray = () => Array(6).fill().map(() => obj);
console.log(randomArray());
не исключён повтор значения: запросто может выпасть одно и то же «случайное» число из диапазона 0..999 Чтобы значения не повторялись, можно создать массив с возможными значениями, и вынимать из него Array.splice(i, 1) – так гарантируется отсутствие повторов.

Объект сейчас создаётся лишь один раз, и один и тот же вкладывается в массив. Может, проще сделать Array.push() в цикле?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы