У меня есть два массива с различными типами сложных объектов. Если существует определенное соответствие значений между объектами каждого массива, тогда мне нужно взять несколько значений из одного из подходящих объектов и сохранить его. Если несколько пар значений ключа из соответствующего объекта будут сохранены, его необходимо удалить из его массива, чтобы он не сохранялся более одного раза.Обновление массива с условием для цикла - Javascript
Следующее - мое самое лучшее усилие (пока что покажу пример того, что я пытаюсь сделать).
Я хочу обновить свой пустой массив на основе следующего кода. Это простой пример, иллюстрирующий гораздо более сложную проблему, и я думаю, что это, вероятно, лучший способ, чем разрезать и наклеить десятки строк кода. Проблема связана со сбором значений в массиве emptyArray и filtering array2 во время каждой передачи внешнего цикла. Предложения, ведущие с подчеркиванием, не помогают.
var array = [1, 2, 3, 4, 1, 2, 3, 4];
var array2 = [2, 4, 6, 8, 10];
var emptyArray = [];
for (i = 0; i < array.length; i++){
var something = array[i];
var array2 = _.without(array2, emptyArray);
for (a = 0; a < array2.length; a++){
var value = array2[a];
if(something === value){
emptyArray.push(value);
break;
}
}
}
Я хочу, чтобы обновить значения в массив2 на основании заявления, если так, что эти значения не повторяются в вложенном цикле. Вместо этого my emptyArray остается пустым, а не добавляет значения из массива2, поскольку элементы массива2 равны элементам массива.
Чтобы быть ясным, прямо сейчас emptyArray остается пустым и никогда не фильтрует array2. Я хочу, чтобы пустой массив собирал значение 2 в начале второй итерации внешнего цикла, тогда я хотел бы увидеть значение пустого массива 4 в начале 4-й итерации внешнего цикла.
Я хотел бы отфильтровать каждое из этих значений из массива2, поскольку они становятся частью пустого массива, так что они не задают оператор if во время 6-й и 8-й итераций внешнего цикла. Я полагаю, что пустые атрибуты = [2, 4] и array2 = [6, 8, 10], когда петли закончены.
Если вы собираетесь дать мне минус, не могли бы вы хотя бы сказать почему? – rashadb
Возможно, если бы вы предоставили примеры ожидаемого вывода, которые могли бы помочь. Я не вижу, как этот код может работать, например, потому что в 'array' нет элементов для перебора. – Andy
спасибо! Я обновлю его сейчас! – rashadb