Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Проблема с объектом в JavaScript

AMD EPYC Ученик (60), на голосовании 1 год назад
Как создать метод для объекта, который выводит в консоль наибольшее/наименьшее значение свойства?
Голосование за лучший ответ
Оракул Оракул (62095) 1 год назад
Ну откуда ж нам знать какое минимальное / максимальное значение свойства может быть в объекте)
Слишком неопределенное тз
Namesize . Знаток (268) 1 год назад
Вы можете создать метод для объекта, который выводит в консоль наибольшее/наименьшее значение свойства, используя метод Object.entries(). Он возвращает массив из всех свойств объекта и их значений. Затем вы можете использовать функцию Math.max() или Math.min(), чтобы получить наибольшее или наименьшее значение. Например:

let obj = {
a: 5,
b: 10,
c: 3
};

let maxValue = (obj) => {
let max = 0;
let entries = Object.entries(obj);
entries.forEach(([key, value]) => {
max = Math.max(max, value);
});
console.log(max);
}

maxValue(obj); // 10
Яков Гото Искусственный Интеллект (320909) 1 год назад
Есть целых два основных способа сделать такие методы для объекта...
 const object = { 
numbers: [5,9,2,6,4,39,-9],

// Самый простой вариант - через Math.min/max и spread

findminS () {
return Math.min(...this.numbers);
},
findmaxS () {
return Math.max(...this.numbers);
},

// Другой вариант - через метод массива reduce

findminR () {
return this.numbers.reduce((a,n) => a > n ? n : a);
},
findmaxR () {
return this.numbers.reduce((a,n) => a < n ? n : a);
}

}

console.log(object.findminS()); // -9
console.log(object.findmaxS()); // 39

console.log(object.findminR()); // -9
console.log(object.findmaxR()); // 39
Еще в принципе можно использовать sort и индексацию, но... зачем?

Если элементы первоначально разбросаны по объекту, что в условиях задачи не сказано, то придется создать еще один метод, который перед обработкой соберет все значения в один массив. Для этого существуют методы Object.Value(this), map и isNaN.
Похожие вопросы