-4

I'm having an array of JSON objects and want to udpdate in the state

Current State is

this.state.data  has [
  {
     "check_box_list": [
        {"name":"Courier Received by Investor","value":true},
        {"name":"Courier Sent By Investor","value":true},
        {"name":"Signed CA-Doc received","value":true},
        {"name":"Cheque/Payment Received","value":true},
        {"name":"Cancelled Cheque Received","value":true},
        {"name":"ID Proof Received","value":true},     
        {"name":"Address Proof Received","value":true},
        {"name":"KYC Received","value":true},
        {"name":"Signed CA pictures/scan received","value":true},
        {"name":"KRA Updated","value":true}
    ],
    "ca_doc_offline_comment":[""],
    "_id":"5ca89fcd0434ff4ba08b2d37",
    "user_id":"1589",
    "investor_name":"Anupam Mittal",
     "source":"Banner",
     "completed_check_box_list":false,
     "investment_information_id":1154
  }, 
 ...etc
]

want to replace the state with filtered data:

var filtered_data = [
  {
    check_box_list: [
      { name: "Courier Received by Investor", value: false },
      { name: "Courier Sent By Investor", value: false },
      { name: "Signed CA-Doc received", value: false },
      { name: "Cheque/Payment Received", value: false },
      { name: "Cancelled Cheque Received", value: false },
      { name: "ID Proof Received", value: false },
      { name: "Address Proof Received", value: false },
      { name: "KYC Received", value: false },
      { name: "Signed CA pictures/scan received", value: false },
      { name: "KRA Updated", value: false },
      { name: "KYC Updated", value: false }
    ],
    ca_doc_offline_comment: [""],
    _id: "5ca987f8198d13a54714789e",
    investor_name: "Samala Sumanth",
    completed_check_box_list: false
  },
  {
    check_box_list: [
      { name: "Courier Received by Investor", value: false },
      { name: "Courier Sent By Investor", value: false },
      { name: "Signed CA-Doc received", value: false },
      { name: "Cheque/Payment Received", value: false },
      { name: "Cancelled Cheque Received", value: false },
      { name: "ID Proof Received", value: false },
      { name: "Address Proof Received", value: false },
      { name: "KYC Received", value: false },
      { name: "Signed CA pictures/scan received", value: false },
      { name: "KRA Updated", value: false },
      { name: "KYC Updated", value: false }
    ],
    ca_doc_offline_comment: [""],
    _id: "5ca98801198d13a54714789f",
    investor_name: "Samala Sumanth",
    completed_check_box_list: false
  }
];

Have tried with immutability helper package and Object Assign nothing seems working can you please help me out Thanks in advance

  • 2
    Be more specific what you are asking? I bet very few people would like to check which fields you want to update in your `json`. Also, show us what you already tried to do. – Neil Galiaskarov Apr 07 '19 at 07:14
  • Possible duplicate of [How do you clone an Array of Objects in Javascript?](https://stackoverflow.com/questions/597588/how-do-you-clone-an-array-of-objects-in-javascript) – h1b9b Apr 07 '19 at 07:20
  • @h1b9b hi its about updating the state by deep cloning it, can you guide me accordingly? – Samala Sumanth Apr 07 '19 at 07:29

1 Answers1

0

You can do:

const clonedArray = JSON.parse(JSON.stringify(myArray))

And then use map for updating clonedArray

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

bsekula
  • 914
  • 1
  • 9
  • 25