以下是详细的要求:

time = ["09-13", "12-14"]

getResult(time) = false

第一场演出从上午9点到下午1点,第二场演出从下午12点开始,所以你无法完整地观看每一场演出.

time = ["07-09", "10-12", "15-19"]

getResult(time) = true

但我没能得到结果.我正在找查兰格来完成这件事.有人帮我吗?

以下是我的try :

const getResult = (time) => {
  const nums = [];
  let pre = 0;
  time.map((item,index) => {
    item.split('-').map((v,i) => {
      nums.push(+v);//converting as number
    });
  });
  const result = nums.map((v,i) => {
    if(!i) return;
    console.log(v-pre)//but logically this is not works
    pre = v;
  })
}

//time = ["09-13", "12-14"]; //false
time = ["07-09", "10-12", "15-19"] //true
getResult(time); //should be false

提前谢谢.

推荐答案

您的格式对于直接>=次比较已经很有用,一旦我们在-个值上拆分了值.因此,我们可以简单地对值进行排序,然后判断在第一个值之后的每种情况下,起始部分(-之前)至少与前一个值的结束部分(-之后)一样大.它可能是这样的:

const feasible = (times) => [... times] 
  .sort () 
  .every ((t, i, a) => i == 0 || t .split ('-') [0] >= a [i - 1] .split ('-') [1])  


console .log (feasible (["09-13", "12-14"]))
console .log (feasible (["07-09", "10-12", "15-19"]))

我们使用i == 0 ||来避免测试第一个排序值.

这需要将每个值拆分两次(除了第一个)如果这种低效率困扰您,我们可以解决它(使用更多内存;总是有一个折衷!)通过拆分它们并保存结果:

const feasible = (times) => [... times] 
  .sort () 
  .map (s => s .split ('-')) 
  .every ((t, i, a) => i == 0 || t [0] >= a [i - 1]  [1])  

Javascript相关问答推荐

被CSS优先级所迷惑

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

我在Django中的视图中遇到多值键错误

Next.js服务器端组件请求,如何发送我的cookie token?

对网格项目进行垂直排序不起作用

对路由DOM嵌套路由作出react

如何发送从REST Api收到的PNG数据响应

在数组中查找重叠对象并仅返回那些重叠对象

使用NextJS+MongoDB+Prisma ORM获取无效请求正文,无法发布错误

在不删除代码的情况下禁用Java弹出功能WordPress

如何在一个对象Java脚本中获取不同键的重复值?

我不知道如何纠正这一点.

JavaScript -复制到剪贴板在Windows计算机上无效

在点击链接后重定向至url之前暂停

找不到处于状态的联系人

单击时同时 Select 和展开可访问的行

鼠标进入,每秒将图像大小减小5%

try 导入material 时出现错误NG0203

有没有一种方法可以在不定义任何属性的情况下使用CSS转换?

如何在使用FOR AWAIT时从异步生成器中获取返回值