Javascript 按findIndex索引查找对象,如果未找到任何内容,则返回第一项

Javascript 按findIndex索引查找对象,如果未找到任何内容,则返回第一项,javascript,Javascript,如果在列表中找到,函数findIndex将返回元素的索引,或者返回-1 但是,如果没有找到任何内容,我希望有一个现有的固定项,即第一个,而不是检查返回值: if (id === -1) id = 0; 在JavaScript中有没有一种简单或更短的方法 var项目=[{ 信息:“你好,世界”, 日期:“j1” }, { 信息:“Lorem ipsum dolor sit”, 日期:“j2” }] 函数idbyDay(天){ 返回此.items.findIndex(q=>q.day==da

如果在列表中找到,函数
findIndex
将返回元素的索引,或者返回
-1

但是,如果没有找到任何内容,我希望有一个现有的固定项,即第一个,而不是检查返回值:

if (id === -1)
  id = 0;
在JavaScript中有没有一种简单或更短的方法

var项目=[{
信息:“你好,世界”,
日期:“j1”
}, {
信息:“Lorem ipsum dolor sit”,
日期:“j2”
}]
函数idbyDay(天){
返回此.items.findIndex(q=>q.day==day);
}
函数myFunction(){
var day=document.getElementById(“day”).value
控制台日志(天);
var id=此.idbyDay(天);
如果(id==-1)
id=0;
console.log(this.items[id]);
}

试试看
你可以使用三元运算符,但不能再简化了

function idbyDay(day) {
  const idx = this.items.findIndex(q => q.day === day)
  return idx !== -1 ? idx : 0;
}
或者,由于您仅使用索引从数组中获取项,因此可以与null合并操作符一起使用以提供默认值

function itembyDay(day) {
  return this.items.find(q => q.day === day) ?? this.items[0];
}

它不返回id;它返回索引。请在此发布相关代码。谢谢,这很有帮助,因为三元运算符对me@andpei很乐意帮忙。