У меня есть один массив, в котором есть объекты, ключи которых соответствуют другому массиву объектов с теми же ключами, а значением для первого ключа является индекс месяца (0
= январь, 1
= февраль и т. д.), и точки могут пересекать деление года (a:10, a:11, a:0, a:1
)
Однако первый массив может иметь разное количество объектов, и значения ключа одного объекта могут не существовать в другом объекте того же ключа, и наоборот.
Предполагая, что оба массива уже упорядочены правильно, я хочу сравнить эти два массива, и если в одном массиве отсутствует объект со значением для ключа, который есть в другом, я хочу добавить новый объект в первый массив с тем же ключ и значение в той же позиции/индексе в массиве, в котором его нет, как и в массиве, в котором он есть.
let arr1 = [{a:0, b:1},{a:1, b:3},{a:3, b:18},{a:4, b:2}]
let arr2 = [{a:10, b:2},{a:11, b:4},{a:0, b:8},{a:1, b:5},{a:2, b:1}]
arr1
отсутствуют объекты со значением a
10, 11 и 2, которые существуют в arr2
, а arr2
отсутствуют объекты со значением a
3 и 4, которые существуют в arr1
Что я хочу получить в итоге:
arr1 = [{a:10, b:0},{a:11, b:3},{a:0, b:1},{a:1, b:3},{a:2, b:0},{a:3, b:18},{a:4, b:2}]
arr2 = [{a:10, b:2},{a:11, b:4},{a:0, b:8},{a:1, b:5},{a:2, b:1},{a:3, b:0},{a:4, b:0}]
Теперь у arr1
есть новые элементы/объекты для a:10
, a:11
и a:2
, а у arr2
есть новые элементы для a:3
и a:4
, все из которых имеют b
значение 0;
Я пытался изобразить это на бумаге, чтобы логически понять, что я буду делать физически, но я просто не могу понять это, поэтому ответ «Для чайников» был бы действительно полезен. Я думал, что усвоил достаточно, чтобы меня можно было трудоустроить, но это действительно задевает меня, и это только для простого линейного графика холста HTML5. Я получаю данные из БД для сравнения двух линий на одном графике, где может не быть данных за один месяц для одного типа данных, но есть для другого типа данных. И для тех мест, которых нет ни в одном, ни в другом, я хочу опустить линию до 0 по оси Y, а затем вернуться к следующему значению. https://github.com/rmgreenstreet/custom-forms/blob/master/public/javascripts/canvasRender.js