@heisenberg1

Как переписать код, чтобы функция получала значения ключей объекта?

Есть такой код:

const style = [
  'palace',
  'flat',
  'house',
  'bungalow',
  'hotel'
]; 
const register = [
  '12:00',
  '13:00',
  '14:00'
]; 
const check = [
  '12:00',
  '13:00',
  '14:00'
];
function getRandomFixedValues(min, max) {
	return Math.floor(Math.random() * (max - min + 1)) + min;
}
function random(style, register , check) {
	return (style[getRandomFixedValues(0, style.length - 1)]) + ', ' +  (register[getRandomFixedValues(0, register.length - 1)]) + ', ' +  (check[getRandomFixedValues(0, check.length - 1)])
};
console.log(random(style, register , check));

Он выдаёт нужный результат, как можно его переписать, чтобы style, register и check были не отдельными массивами, а ключами определённого объекта (к примеру general)?

Чтобы функции применялись к:

const general= {
style: [
  'palace',
  'flat',
  'house',
  'bungalow',
  'hotel'
], 
register: [
  '12:00',
  '13:00',
  '14:00'
],
check: [
  '12:00',
  '13:00',
  '14:00'
]};
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
Seasle
@Seasle Куратор тега JavaScript
const general = {
  style: ['palace', 'flat', 'house', 'bungalow', 'hotel'],
  register: ['12:00', '13:00', '14:00'],
  check: ['12:00', '13:00', '14:00'],
};

- function random(style, register , check) {
+ function random({ style, register, check }) {

- console.log(random(style, register , check));
+ console.log(random(general));

Также, можно упростить получение случайного элемента:
const pick = array => array[Math.floor(Math.random() * array.length)];
pick(['Apple', 'Orange']); // 'Apple' или 'Orange'

Тогда можно будет написать так:
function random({ style, register , check }) {
    return pick(style) + ', ' +  pick(register) + ', ' + pick(check);
};
// Или так:
// const random = ({ style, register , check }) => `${pick(style)}, ${pick(register)}, ${pick(check)}`;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы