Имам един масив, който има обекти, чиито ключове съвпадат с друг масив от обекти със същите ключове и стойността за първия ключ е индекс на месеца (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 платнена линейна графика. Получавам данни от DB, за да сравня два реда на една и съща графика, където може да няма данни за един месец за един тип данни, но има за другия тип данни. И за онези петна, които не съществуват в едното или другото, искам да сваля линията надолу до 0 по оста Y, след което обратно до следващата стойност. https://github.com/rmgreenstreet/custom-forms/blob/master/public/javascripts/canvasRender.js