'Update and add new entry on array of objects in javascript [duplicate]

I have to compare two arrays of objects "like - array1, array2" if we found extra row on "array2" we have to add the row to the "array1" and if we found any update on the "array2" in any key we have to update on "array1"

I just added an "expectedArray" in my question and added some comments for reference

const array1 = [
    {
        "SiteName": "NJ",
        "LocationName": "NJ_1_1",
        "Lat_GDA94": -18.95521242,
        "Long_GDA94": 53.45254241,
        "Camera_ID": "NJ001",
        "SDCard": "Card001",
        "Camera_Model": "Swift ENDURO 4G",
        "CamHeight_cm": 550,
        "FocalDistance_m": 1.5,
        "Lure": "N/A",
        "DateSet": "06 07 2020",
        "SetBy": "D Brook",
        "DateRetrieved": "28 04 2021",
        "RetrievedBy": "D Brook"
    },
    {
        "SiteName": "NJ",
        "LocationName": "NJ_6_1",
        "Lat_GDA94": 28.97906497,
        "Long_GDA94": 15.44272058,
        "Camera_ID": "NJ005",
        "SDCard": "Card001",
        "Camera_Model": "Swift ENDURO 4G",
        "CamHeight_cm": 550,
        "FocalDistance_m": 1.5,
        "Lure": "N/A",
        "DateSet": "08 07 2020",
        "SetBy": "D Brook",
        "DateRetrieved": "28 04 2021",
        "RetrievedBy": "D Brook"
    },
    {
        "SiteName": "TM",
        "LocationName": "TM_1_1",
        "Lat_GDA94": 59.1833467,
        "Long_GDA94": 13.30937045,
        "Camera_ID": "T002",
        "SDCard": "Card001",
        "Camera_Model": "Swift ENDURO 4G",
        "CamHeight_cm": 550,
        "FocalDistance_m": 1.5,
        "Lure": "N/A",
        "DateSet": "16 07 2020",
        "SetBy": "D Brook",
        "DateRetrieved": "28 04 2021",
        "RetrievedBy": "D Brook"
    }
]

const array2 = [
  {
      "SiteName": "NJ",
      "LocationName": "NJ_1_1",
      "Lat_GDA94": -16.95521242,
      "Long_GDA94": 51.45254241,
      "Camera_ID": "NJ001",
      "SDCard": "Card001",
      "Camera_Model": "Swift ENDURO 4G",
      "CamHeight_cm": 550,
      "FocalDistance_m": 1.5,
      "Lure": "N/A",
      "DateSet": "06 07 2020",
      "SetBy": "D Brook",
      "DateRetrieved": "28 04 2021",
      "RetrievedBy": "D Brook"
  },
  {
      "SiteName": "TM",
      "LocationName": "TM_2_1",
      "Lat_GDA94": -29.18264832,
      "Long_GDA94": 153.30860292,
      "Camera_ID": "T005",
      "SDCard": "Card001",
      "Camera_Model": "Swift ENDURO 4G",
      "CamHeight_cm": 550,
      "FocalDistance_m": 1.5,
      "Lure": "N/A",
      "DateSet": "16 07 2020",
      "SetBy": "D Brook",
      "DateRetrieved": "28 04 2021",
      "RetrievedBy": "D Brook"
  },
  {
      "SiteName": "TM",
      "LocationName": "TM_2_2",
      "Lat_GDA94": -29.18248722,
      "Long_GDA94": 153.30905411,
      "Camera_ID": "T003",
      "SDCard": "Card001",
      "Camera_Model": "Swift ENDURO 4G",
      "CamHeight_cm": 550,
      "FocalDistance_m": 1.5,
      "Lure": "N/A",
      "DateSet": "16 07 2020",
      "SetBy": "D Brook",
      "DateRetrieved": "28 04 2021",
      "RetrievedBy": "D Brook"
  },
  {
      "SiteName": "HH",
      "LocationName": "HH1_1_1",
      "Lat_GDA94": -29.20880782,
      "Long_GDA94": 153.31918423,
      "Camera_ID": "B001",
      "SDCard": "Card001",
      "Camera_Model": "Swift ENDURO 4G",
      "CamHeight_cm": 550,
      "FocalDistance_m": 1.5,
      "Lure": "N/A",
      "DateSet": "04 08 2020",
      "SetBy": "D Brook",
      "DateRetrieved": "28 04 2021",
      "RetrievedBy": "D Brook"
  }
]

const expectedArray = [{
    "SiteName": "NJ",
    "LocationName": "NJ_1_1",
    "Lat_GDA94": -16.95521242, // updated entry existing row
    "Long_GDA94": 51.45254241, // updated entry existing row
    "Camera_ID": "NJ001",
    "SDCard": "Card001",
    "Camera_Model": "Swift ENDURO 4G",
    "CamHeight_cm": 550,
    "FocalDistance_m": 1.5,
    "Lure": "N/A",
    "DateSet": "06 07 2020",
    "SetBy": "D Brook",
    "DateRetrieved": "28 04 2021",
    "RetrievedBy": "D Brook"
  },
  {
    "SiteName": "NJ",
    "LocationName": "NJ_6_1",
    "Lat_GDA94": 28.97906497,
    "Long_GDA94": 15.44272058,
    "Camera_ID": "NJ005",
    "SDCard": "Card001",
    "Camera_Model": "Swift ENDURO 4G",
    "CamHeight_cm": 550,
    "FocalDistance_m": 1.5,
    "Lure": "N/A",
    "DateSet": "08 07 2020",
    "SetBy": "D Brook",
    "DateRetrieved": "28 04 2021",
    "RetrievedBy": "D Brook"
  },
  {
    "SiteName": "TM",
    "LocationName": "TM_1_1",
    "Lat_GDA94": 59.1833467,
    "Long_GDA94": 13.30937045,
    "Camera_ID": "T002",
    "SDCard": "Card001",
    "Camera_Model": "Swift ENDURO 4G",
    "CamHeight_cm": 550,
    "FocalDistance_m": 1.5,
    "Lure": "N/A",
    "DateSet": "16 07 2020",
    "SetBy": "D Brook",
    "DateRetrieved": "28 04 2021",
    "RetrievedBy": "D Brook"
  },
  {
    "SiteName": "TM",
    "LocationName": "TM_2_1", // added new row
    "Lat_GDA94": -29.18264832,
    "Long_GDA94": 153.30860292,
    "Camera_ID": "T005",
    "SDCard": "Card001",
    "Camera_Model": "Swift ENDURO 4G",
    "CamHeight_cm": 550,
    "FocalDistance_m": 1.5,
    "Lure": "N/A",
    "DateSet": "16 07 2020",
    "SetBy": "D Brook",
    "DateRetrieved": "28 04 2021",
    "RetrievedBy": "D Brook"
  },
  {
    "SiteName": "TM",
    "LocationName": "TM_2_2", // added new row
    "Lat_GDA94": -29.18248722,
    "Long_GDA94": 153.30905411,
    "Camera_ID": "T003",
    "SDCard": "Card001",
    "Camera_Model": "Swift ENDURO 4G",
    "CamHeight_cm": 550,
    "FocalDistance_m": 1.5,
    "Lure": "N/A",
    "DateSet": "16 07 2020",
    "SetBy": "D Brook",
    "DateRetrieved": "28 04 2021",
    "RetrievedBy": "D Brook"
  },
  {
    "SiteName": "HH",
    "LocationName": "HH1_1_1", // added new row
    "Lat_GDA94": -29.20880782,
    "Long_GDA94": 153.31918423,
    "Camera_ID": "B001",
    "SDCard": "Card001",
    "Camera_Model": "Swift ENDURO 4G",
    "CamHeight_cm": 550,
    "FocalDistance_m": 1.5,
    "Lure": "N/A",
    "DateSet": "04 08 2020",
    "SetBy": "D Brook",
    "DateRetrieved": "28 04 2021",
    "RetrievedBy": "D Brook"
  }
]

I just added an "expectedArray" in my question and added some comments for reference



Solution 1:[1]

You have to make sure to pass every group level of lithology to kruskal.test().

test <- kruskal.test(branchsize$lithology ~ branchsize$size)
#test <- kruskal.test(lithology ~ size, data = branchsize) # equivalently
#test <- with(branchsize, kruskal.test(lithology ~ size)) # equivalently
# -----------------------------------------------------------------------
> test$statistic
Kruskal-Wallis chi-squared 
                  105.3318 # H value

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1