Javascript - цикл по объекту на основе переменной qty

Я задал подобный вопрос ранее (хотя и немного другой) ..

В основном здесь используется jsfiddle http://jsfiddle.net/WTMBA/

Я хотел бы перебрать объект и на основе количества переменных qty перебрать и добавить значения объекта в массив.

e.g

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

Функция quantify () должна возвращать это как массив с 4 элементами, так как первый элемент в объекте имеет значение qty, равное 1, а второе значение имеет количество 3 (1 + 3).

Массив, возвращаемый функцией quantify, должен быть структурирован так, чтобы включать условие, URL-адрес и цену (см. Скрипт)

Может ли кто-нибудь подсказать, как мне отредактировать функцию количества, чтобы это сделать?


person Zabs    schedule 21.11.2013    source источник
comment
Итак, вы хотите продолжать добавлять один и тот же объект в массив на основе переменной qty? например qty = 10, добавить один и тот же элемент 10 раз? Если это так, попробуйте это. jsfiddle.net/denniswaltermartinez/apH9H   -  person Dennis Martinez    schedule 21.11.2013
comment
выглядит хорошо .. проверю   -  person Zabs    schedule 21.11.2013
comment
Если вы добавите это в «Ответь на вопрос», я приму :)   -  person Zabs    schedule 21.11.2013


Ответы (1)


Если вы пытаетесь снова и снова добавлять один и тот же объект в массив на основе переменной qty объекта, вы можете использовать для этого вложенные циклы.

var products = [{
    url: 'http://domain.com/abc',
    qty: 1,
    price: 2.99
}, {
    url: 'http://myurl.com/cde',
    qty: 3,
    price: 64.11
}];

var i = 0,
    l = products.length,
    cart = [];

for (; i < l; i++) {
    var product = products[i];

    for (var x = 0; x < product.qty; x++)
        cart.push(product);
}

Просмотрите следующий JSFiddle для получения полного примера.

person Dennis Martinez    schedule 21.11.2013