[英]Reset arrays value inside angular.foreach loop
我有一个像这样的空对象数组:
var a = [ {}, {}, {}, {}, {}, {} ];
以及一系列属性:
var colors = ["red", "green", "blue"];
我需要将“颜色”中的每种颜色分配给带有角度foreach的“a”数组的每个元素。 但是“a”数组的长度大于“颜色”。 我想要“按圈子”分配颜色所以结果必须是这样的:
var a = [
{color: "red"},
{color: "green"},
{color: "blue"},
{color: "red"},
{color: "green"},
{color: "blue"},
{color: "red"}
];
angular.forEach(a, function(elem, index) {
if (a.length > colors.length) {
// .......
}
elem.color = colors[index];
});
问题:是否有某种方法可以重置foreach的索引,从头开始循环“colors”数组? 感谢帮助
尝试这个
var a = [ {}, {}, {}, {}, {}, {} ];
var colors = ["red", "green", "blue"];
a.forEach(function(item,key){
item.color = colors[key % colors.length];
})
console.log(a)
试试这样的javascript map
功能
var a = [ {}, {}, {}, {}, {}, {}, {} ]; var colors = ["red", "green", "blue"]; a = a.map(function(o,i){ var color = (colors[i]) ? colors[i] : callFunc(i); o.color =color; return o; function callFunc(i){ var diff = (i - colors.length)% (colors.length) return colors[diff] } }) console.log(a)
你可以简单地在foreach里面有一个计数器。 在每次迭代增量中,我喜欢i ++,一旦达到颜色数组的长度,只需将其重置为i = 0,颜色[i]可用于获取颜色名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.