У меня есть один массив, в котором есть объекты, ключи которых соответствуют другому массиву объектов с такими же ключами, а значением для первого ключа является индекс месяца (0
= январь, 1
= февраль и т. Д. c .) и точки могут пересекать деление на год (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
* 101 8 *
В итоге я хочу получить :
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