Javascript - 基于qty变量循环次数

时间:2013-11-21 12:07:05

标签: javascript loops

我有以下javascript对象

[Object { url="http://domain.com/abc", qty="1" }, Object { url="http://myurl.com/cde", qty="2" }]

我希望能够循环访问对象并使用console.log()基于qty变量输出URL。

因此在这种情况下,domain.com/abc会显示一次&当qty设置为2时,myurl.com/cde将显示两次。

我有类似以下内容但需要一些工作..

cart.forEach(function(value) {
   var qty = value.qty;
   var url = value.url;
   var i = 0;

   while ( i < qty ) {
     // logic needed here (i believe)
     i++;
   }
}

1 个答案:

答案 0 :(得分:1)

这就是如何在JS中实现String.repeat:

var repeatedString = Array(repeatsCount + 1).join(stringToRepeat);

...所以在你的情况下,它只是......

console.log(Array(+value.qty + 1).join(value.url));

一元加号是Number(value.qty)的捷径:看起来你有一个字符串。


但看起来你确实需要收集所有的网址。这是一种可能的方法:

var arrayOfUrls = [];
cart.forEach(function(value) {
   for (var i = value.qty; i--) {
     arrayOfUrls.push(value.url);
   }
});

替代方案(.reduce-based):

var arrayOfUrls = cart.reduce(function(arr, value) {
  for (var i = value.qty; i--) {
     arr.push(value.url);
  }
  return arr;
}, []);