Javascript 如何将日期范围分配给数组并与日期输入数据进行比较

Javascript 如何将日期范围分配给数组并与日期输入数据进行比较,javascript,html,css,function,Javascript,Html,Css,Function,我有一个应用程序,它有两个日期输入字段。我有一个现有的函数,它从每个字段中提取数字,并不断地添加数字,直到生成一个数字。然后它返回相应的数字,我在它们前面显示一些文本 我想创建另一个函数,它做一些类似的事情,它获取输入字段的月份和日期(不是年份),然后将日期匹配到一个包含12个不同日期范围的数组(我想?)。最后,我想简单地将其分配给一系列占星术符号名。例如,一个日期为04/09(年份不重要)将产生“白羊座”。这里需要记住的重要一点是,我需要将输入日期与12个日期范围(例如3月20日至4月20日)

我有一个应用程序,它有两个日期输入字段。我有一个现有的函数,它从每个字段中提取数字,并不断地添加数字,直到生成一个数字。然后它返回相应的数字,我在它们前面显示一些文本

我想创建另一个函数,它做一些类似的事情,它获取输入字段的月份和日期(不是年份),然后将日期匹配到一个包含12个不同日期范围的数组(我想?)。最后,我想简单地将其分配给一系列占星术符号名。例如,一个日期为04/09(年份不重要)将产生“白羊座”。这里需要记住的重要一点是,我需要将输入日期与12个日期范围(例如3月20日至4月20日)进行比较

我不知道如何构造这个函数来做我想做的事情。似乎我需要创建一个包含12个不同日期范围的数组,并根据该数组检查输入数据

有什么建议吗?以下是我现有的javascript和html:

var ZodiacSigns = ['Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo', 'Virgo', 'Libra', 'Scorpio', 'Saggitarius', 'Capricorn','Aquarius', 'Pisces'];




function getSum() {
// Place the id's of the input and output elements into respective arrays
let inputs = ['dateInput1','dateInput2'];
let outputs = ['result1','result2'];

// Loop over the items in the inputs array
// This will cause you to loop as many times as there are input elements
inputs.forEach(function(input, index){

// Instead of hard-coding the element id, you get the element reference
// from the .forEach callback function argument.
const inputValue = document.getElementById(input).value;
var sum = 0;
for (var i = 0; i < inputValue.length; i++) {
  const num = parseInt(inputValue.charAt(i));
  if (!isNaN(num)) {
    sum += num;
  }
}
const total = (sum - 1) % 9 + 1;
// And here, you reference the right output element, by using the corresponding
// index from the inputs array.
document.getElementById(outputs[index]).textContent = "Your number is: " + total;

});
}
var黄道十二宫=[‘白羊座’、‘金牛座’、‘双子座’、‘巨蟹座’、‘狮子座’、‘处女座’、‘天秤座’、‘天蝎座’、‘Saggitarius’、‘摩羯座’、‘水瓶座’、‘双鱼座’];
函数getSum(){
//将输入和输出元素的id放入各自的数组中
让输入=['dateInput1','dateInput2'];
让输出=['result1','result2'];
//循环输入数组中的项
//这将导致循环次数与输入元素的次数相同
输入。forEach(函数(输入,索引){
//不必硬编码元素id,而是获取元素引用
//来自.forEach回调函数参数。
const inputValue=document.getElementById(输入).value;
var总和=0;
对于(变量i=0;i


你的名字
他们的名字
重新开始

有很多不同的方法。下面是一个简单的例子,完全按照您所说的做,使用范围数组进行比较

练习留给读者填写实际的黄道带日期

函数getZodiac(日、月){
//存储黄道带的开始/结束范围
让十二生肖={
“螃蟹”:{
“开始”:[1,1],
“结束”:[25,7]
},
“狗”:{
“开始”:[25,7],
“结束”:[31,12]
}
}
//循环遍历“zodiacs”的每个属性。在本例中,属性名称是zodiac_名称
for(让生肖以生肖命名){
//对象包含两个属性“开始”和“结束”。每个属性都是由两个数字组成的数组。第一个是天,第二个是月。
//因此开始[0]表示这是开始日,结束[1]表示结束日
如果(
(月>=十二生肖[zodiacs_name]。开始[1]&&month=zodiacs[zodiac_name].start[0]&&day
谢谢你的回答,但我一点也不懂,我很新,也许你可以在你的答案上多加一些评论?添加了一些评论。有什么特别令人困惑的地方吗?上面只显示了一个对象的属性循环。我认为您编写的对象的语法比我目前的知识更高级。我说的对吗,在黄道带中有两个物体?在螃蟹和狗对象中有数组吗?你完全正确。我对它进行了编辑,使其更具可读性,但完全一样。
<div class="container">

    <div class="cell-1" id="centerElement">
        <div id="cell-1-nest-l"></div>
        <div id="cell-2-nest-l"></div>
        <div id="cell-3-nest-l"></div>
        <div id="cell-4-nest-l"><h3>your name</h3></div>
        <div id="cell-5-nest-l"></div>
        <div id="cell-6-nest-l"><input type="text" class="nameStyle1" id="nameInput1"></div>

</div>

    <div class="cell-2" id="centerElement" ><img onclick="getSum();" 
src="file:///Users/Nineborn/Downloads/My%20Post%20(5).png" alt=""></div>

    <div class="cell-3" id="centerElement" >
            <div id="cell-1-nest"></div>
            <div id="cell-2-nest"></div>
            <div id="cell-3-nest"><h3>their name</h3></div>
            <div id="cell-4-nest"></div>
            <div id="cell-5-nest"><input type="text" class="nameStyle1" id="nameInput2"> 
 </div>
            <div id="cell-6-nest"></div>


            </div>

    <div class="cell-4" id="result1">
        <input type="date" class="dateStyle1" id="dateInput1">
            </div>

    <div class="cell-5"><button>Start Over</button></div>

    <div class="cell-6" id="result2"> 
        <input type="date" class="dateStyle2" id="dateInput2" placeholder="Their Bday">
            </div>
    <div class="cell-7"></div>

    <div class="cell-8"></div>

    <div class="cell-9"></div>


</div>