как использовать функцию уменьшения JavaScript

#javascript

#javascript

Вопрос:

Как мы можем получить наименьшее значение из массива объектов?

 const arr = [
objTemp1 = {value: 10},
objTemp2 = { value: 1},
objTemp3 ={value: 40}
]
function smalels(...obj) => obj.reduce(initial_value, value){
if (initial_value < value)
 return initial_value 
 else 
return value  } )

  

где я делаю ошибку?

Комментарии:

1. где ваш массив? что вы пробовали? что не работает?

Ответ №1:

Имея массив объектов, вы можете напрямую уменьшить этот массив и вернуть объект с наименьшим значением.

 const
    array = [{ value: 10 }, { value: 1 }, { value: 100 }],
    result = array.reduce((a, b) => a.value < b.value ? a : b);

console.log(result);  

Ответ №2:

@Дерек.W ответил на это действительно хорошо. Мое решение тоже такое же.

 objTemp1 = {
    value: 10,
};
objTemp2 = {
    value: 1,
};
objTemp3 = {
    value: 100,
};

var allObj = [objTemp1,objTemp2,objTemp3]; //I took all the objects in an array

var smallestObj = allObj.reduce((prev,currentValue)=>{
  return prev.value <= currentValue.value ? prev : currentValue;
});
  

Ответ №3:

Вы можете получить минимальный объект, используя Array.reduce следующее.

 const objTemp1 = {
  value: 10,
};
const objTemp2 = {
  value: 1,
};
const objTemp3 = {
  value: 100,
}

function smallest() {
  return Object.values(arguments).reduce((acc, cur) => {
    return (acc amp;amp; acc.value < cur.value) ? acc : cur;
  }, null);
}

console.log(smallest(objTemp1, objTemp2, objTemp3));  

Комментарии:

1. Просто пропустите третий параметр вместо сравнения с null . Это однострочный.