Я думал о 2 возможных решениях.Первый, который я НЕ рекомендую:
array.reduce((acc, cur) => {
return cur.id == searchedId ? cur.title : acc;
}, "None found");
Особенно, если вам нужно использовать его часто, избегайте «сложного» кода, даже если мы рассматриваем одну строку.
Второй вариант (если вы действительно не хотите использовать функцию) это:
Array.prototype.findOrElse = function(cb, objcb, retValue) {
let findElem = this.find(elem => cb(elem));
return objcb(findElem) || retValue;
}
Вы можете назвать это так:
array.findOrElse(elem => elem.id == searchedId, elem => elem.title, "None found");
Как правило, я не выбираю этот способ, потому что я предпочитаюне трогать нативные объекты, которые предоставляет js, но никто не запрещает это.
РЕДАКТИРОВАТЬ: Поскольку @PatrickRoberts заставил меня заметить, это не совсем ответ.Я только нашел 2 возможных решения, которые по разным причинам я не рекомендую.Функции имеют это преимущество: вам не нужно повторять один и тот же код, даже если он состоит из одной строки.Подумайте о возможной ситуации, когда вам может потребоваться получить другое свойство вместо title
.
С другой стороны, настроить функцию внутри прототипа объекта Array
сложно: вы пытаетесь сделать эту функцию настолько универсальной, насколько это возможно, с риском чрезмерного усложнения определения функции.
Так почему бы не пойти с вашей собственной определенной функцией?