Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查数组值后,如果有更多元素,请重复此过程_Javascript - Fatal编程技术网

Javascript 检查数组值后,如果有更多元素,请重复此过程

Javascript 检查数组值后,如果有更多元素,请重复此过程,javascript,Javascript,所以我有一些元素需要在这几个月里动态地填充。现在,这个过程循环一次。是否有一种方法可以更改它,使它继续在该数组中循环,直到它用完html中的“.point”元素 JS var月数=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月']; var monthsLength=月数。长度; 变量点=$('.point'); 对于(变量i=0;i

所以我有一些元素需要在这几个月里动态地填充。现在,这个过程循环一次。是否有一种方法可以更改它,使它继续在该数组中循环,直到它用完html中的“.point”元素

JS

var月数=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月'];
var monthsLength=月数。长度;
变量点=$('.point');
对于(变量i=0;i
我认为.filter()函数更适合于这个over.map()。您可以指定所需的“点”,它将只返回带有该点的项目。然后您可以随意使用该点数据。

根据您的代码语法,我假设您使用的是JQuery

如果项目数小于或等于12,则可以从每个点的月份数组中移动元素

如果有超过12个点,那么最好使用mod division操作为数组的索引获取适当的月份。使用这种方法,您可以根据需要迭代月数组

注意:您可以使用浏览器的开发工具检查输出窗口中的元素以查看结果

var月数=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月'];
$('.point')。每个(函数(索引、值){
$(此).attr(“数据日期”,月份[索引%12]);
});


感谢您的回答@zavg,但它仍然只在数组中循环一次。如果有12个以上的“.point”元素,则停止:(@grahamfk45c)我更新了答案
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var monthsLength = months.length;
var points = $('.point');
for (var i = 0; i < monthsLength; i++) {
    var point = points[i];
    if (!point) {
        break;
    }
    point.setAttribute("data-date", months[i]);
}
$('.point').each(function() {
    $(this).attr("data-date", months.shift());  
});