我卡在了某个地方,这可能是最简单的问题,但我已经尽可能多地尝试谷歌搜索,但没有找到确切的结果。
- 我有一个简单的日历,由 HTML、jquery 添加
在我的 woocomerce/WordPress 网站中,我想根据日历上的预订开始和结束日期显示预订的产品数量。就像当用户将鼠标悬停在日历上的日期上时,预订产品的数量将显示在日期下方。 (我正在开发一个租赁网站,它的日期范围是从开始到结束,就像酒店一样,这个可以忽略。)
但是如果在 8 月 18 日,我们有两个产品已预订,我想在那里显示“2 个已预订”
为此,我使用了 inArray 函数。
- 我有一组日期 (var only_dates)
- 我有当前日期 (var some)[在开始和结束的范围内]
我试过console.log(jQuery.inArray(some, only_dates))
这是给了我结果 作为屏幕截图,我们已经有 8 月 18 日,所以在第二次,我想把它算作 2,然后 8 月 19 日也一样,依此类推。
对于一个对象我们可以尝试
if(jQuery.inArray(some, only_dates) == 1)
{
console.log('found')
}
但在我的例子中,我如何在循环中动态使用 inArray(超过)然后打印出现的次数。
如有任何帮助,我们将不胜感激。谢谢。
编辑: 所以这是我的代码
$sepr_date = getDatesFromRange($start, $end); /*a function that coverts range dates into sequence*/
foreach ($sepr_date as $dt) {?>
<script type="text/javascript">
ds = {'Date': new Date("<?php echo $dt; ?>"), 'Title': 'Booked', 'Link': 'javascript:void(0)'},
events_s.push(ds)
var some = "<?php echo $dt; ?>"
only_dates.push(some)
console.log(some)
console.log(only_dates)
if(jQuery.inArray(some, only_dates) != -1)
{
console.log('found ' + some)
}
</script>
<?}?>
控制台给予:
在推送项目时,我想检查是否存在。 如果找到,则增加计数。 如果没有找到,就不要做这么简单的事情。
最佳答案
你可以使用grep
函数:
var count = $.grep(only_dates, function (elem) {
return elem === some;
}).length;
关于javascript - 动态 checkin 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45729253/