Javascript 切片不同长度的字符串值并将这些值指定给对象

Javascript 切片不同长度的字符串值并将这些值指定给对象,javascript,arrays,function,object,for-loop,Javascript,Arrays,Function,Object,For Loop,我在一个标签中有多个长度不同的字符串值,包含一个复选框,如下所示: <label> <input type="checkbox" name="standard-length">Course Title - Monday 9pm-12pm, $100 </label> <label> <input type="checkbox" name="different-length">Different Length Title - Tu

我在一个标签中有多个长度不同的字符串值,包含一个复选框,如下所示:

<label>
  <input type="checkbox" name="standard-length">Course Title - Monday 9pm-12pm, $100
</label>
<label>
  <input type="checkbox" name="different-length">Different Length Title - Tuesday 12pm-2am, $200
</label>
<label>
  <input type="checkbox" name="everything">All - $400
</label>
我认为获得价格是很容易的,它们在3位数和字符串末尾都是相同的长度,所以一个.slice(-3)就可以了。但是由于标题的长度不同,我尝试使用破折号(“-”)作为结束索引,由于每个标题都以空格开头,我也尝试使用indexOf(1)来访问它,因为从技术上讲,第一个字母在空格之后,数组中的第二个字符。然后我尝试使用“,”作为索引的结尾,因为它在时间之后下降,等等

我将所有这些都绑定到一个事件处理程序,以便在单击复选框时触发逻辑,因为我还将相互比较冲突的日期,如果这些日期和时间相同,则禁用复选框

我使用了一种完全不同的解决方案来实现这一点,尽管这是一种不雅观的解决方案,但我正试图更好地理解如何为对象赋值和迭代,以及如何创建可访问的属性,以便以后使用,如下所示:

if(Get str1[time) and compare it to str2[time]) {
  // set str1 checkbox boolean to false and do something to disable it in the html
}

是的,
indexOf(“-”)
lastIndexOf(“,”)
应该完成这项工作。您到底得到了什么字符串?如果这在浏览器中运行,您应该获得标签的
.textContent
,并且可以忽略所有html内容。我不明白您为什么尝试循环
strDetails
对象。当然,你应该迭代标签(行),但是对于每个标签,你应该只做赋值。因为我试图分解的字符串段有不同的字数,所以我得到的结果是在错误的位置切割字符串。至于对象,我试图将字符串的不同段存储在对象中,以便稍后在另一个函数中访问它们,这样我就可以(比如)将这些值相互比较,比如:
if(str1.day==str2.day){str2.style.display=“none”}
if(Get str1[time) and compare it to str2[time]) {
  // set str1 checkbox boolean to false and do something to disable it in the html
}