Home > Back-end >  get size of value in a map javascript
get size of value in a map javascript

Time:08-22

I have below array object of key of Id and List of value pair. I want to get for each key what is the length of the value like

[
  {
    "key": "a5a5E0000003uzTQAQ",
    "value": 1
  },
  {
    "key": "a5a5E0000003uzYQAQ",
    "value": 2
  }
]

I am trying below code , but it is giving me undefined in the length of the value.

var message = [
  {
    "key": "a5a5E0000003uzTQAQ",
    "value": [
      {
        "Name": "Features1"
      }
    ]
  },
  {
    "key": "a5a5E0000003uzYQAQ",
    "value": [
      {
        "Name": "AEO Analysis - Engagement"
      },
      {
        "Name": "AEO Analysis - Engagement 1",
      }
    ]
  }
]

let noOfFields = []
for (let key in message) {
                      if (message.hasOwnProperty(key)) {
                          noOfFields.push({key: key, value: message[key].length });
                      }
                  }

console.log(noOfFields)

CodePudding user response:

You can use array.map

const message = [
  {
    "key": "a5a5E0000003uzTQAQ",
    "value": [
      {
        "Name": "Features1"
      }
    ]
  },
  {
    "key": "a5a5E0000003uzYQAQ",
    "value": [
      {
        "Name": "AEO Analysis - Engagement"
      },
      {
        "Name": "AEO Analysis - Engagement 1",
      }
    ]
  }
]

const noOfFields = message.map((obj) => {
  return {
    key: obj.key,
    value: obj.value.length
  }
})

console.log(noOfFields)

Result:

[
  { key: 'a5a5E0000003uzTQAQ', value: 1 },
  { key: 'a5a5E0000003uzYQAQ', value: 2 }
]

CodePudding user response:

If you want the length you just need this:

var message = [
  {
    "key": "a5a5E0000003uzTQAQ",
    "value": [
      {
        "Name": "Features1"
      }
    ]
  },
  {
    "key": "a5a5E0000003uzYQAQ",
    "value": [
      {
        "Name": "AEO Analysis - Engagement"
      },
      {
        "Name": "AEO Analysis - Engagement 1",
      }
    ]
  }
]

let noOfFields = []
for (let key in message) {
                      if (message.hasOwnProperty(key)) {
                          noOfFields.push({key: key, value: message[key].value.length });
                      }
                  }

console.log(noOfFields)

It's a little misleading to call the length of the value 'value' though.

  • Related