Мне нужна помощь, чтобы получить правильную работу. позвольте мне объяснить несколько частей, чтобы вы поняли проблему, прежде чем я покажу вам эту функцию.цикл через 2 массива javascript
обратите внимание: все данные передаются, не волнуйтесь ни о чем таком, что мой вопрос заключается в том, чтобы зациклиться на данных, которые я изложил ниже, и заставить его работать правильно. Когда эта функция попадает, все уже передается.
У меня есть 2 массива, в которых хранятся данные, в которых один называется Variants(), который всегда содержит 6 вариантов, все из которых имеют уникальный идентификатор, а другой - ProductRequests(). Варианты содержат ВСЕ мои варианты и ProductRequests содержит все выбранные варианты, это может варьироваться от 1 до 6, поэтому все зависит от того, что они выбрали, но они должны выбрать хотя бы один. Независимо от того, что они выбрали, всегда будет соответствовать по сравнению с идентификаторами Array Variants().
Эти идентификаторы, которые совпадают друг с другом, а также количества, то, что я хочу сделать, это петлевые варианты и запросы на продукт, если любой из идентификаторов соответствует, а затем, если они соответствуют количеству из ProductRequests, перепишите количество из Варианты этого идентификатора продукта. Я сделал вторую часть ниже, но ее нужно писать намного лучше.
Что я сделал, так это то, что я написал функцию (без каких-либо циклов), которая сравнивает идентификаторы, но то, что моя проблема иногда зависела от того, что пользователь выбирает в массивах, не будет соответствовать номерам массивов в качестве ProductRequests для пример ProductRequests может содержать только 1 элемент, но он соответствует только Variant() [5] идентификаторов, которые находятся в вариантах и т. д. Таким образом, этот жесткий код просто не сработает. (ну, может быть, это было бы ужасно грязным код.)
function Compare(){
var OldVariants = Variants();
var RequestVariants = ProductRequests();
var One = OldVariants[0].Id;
var Two = OldVariants[1].Id;
var Three = OldVariants[2].Id;
var Four = OldVariants[3].Id;
var Five = OldVariants[4].Id;
var Six = OldVariants[5].Id;
if (One == RequestVariants[0].Id)
{OldVariants[0].Quantity(RequestVariants[0].Quantity)}
if (Two == RequestVariants[1].Id)
{OldVariants[1].Quantity(RequestVariants[1].Quantity)}
if (Three == RequestVariants[2].Id)
{OldVariants[2].Quantity(RequestVariants[2].Quantity)}
if (Four == RequestVariants[3].Id)
{OldVariants[3].Quantity(RequestVariants[3].Quantity)}
if (Five == RequestVariants[4].Id)
{OldVariants[4].Quantity(RequestVariants[4].Quantity)}
if (Six == RequestVariants[5].Id)
{OldVariants[5].Quantity(RequestVariants[5].Quantity)}
}
Эта функция работает, но как я уже сказал выше, если пользователь не выбирает ProductRequests в том порядке, идентификаторы не совпадают означая значения не получают бессрочные.
Любые советы или помощь были бы замечательными.
что является 'функция Compare' намеревался сделать? Вы сказали, что сравнивают их, но не * как *, или какие результаты вы ожидаете, или ... –
он сначала устанавливает идентификаторы массива вариантов в переменную. Затем он сравнивает этот id с ProductRequest(). Id .. теперь то, что я хочу сделать, - это цикл через 2 массива и поиск любых совпадающих идентификаторов в 2 массивах .. теперь, если есть совпадение, которое я хочу сделать a if и добавить ProductRequests(). Количество каждого совпадающего идентификатора в вариантах(). Количество –
Хорошо, хорошо - это то, что мой ответ делает. :-) (Предполагая, что функция 'Quantity' в элементах« OldVariants' добавляет.) –