我有以下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++;
}
}
答案 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;
}, []);