简体   繁体   中英

Iterate over object with some keys and array of objects inside

Assuming I have this data format:

const matchedProperty = "property1"

const jsonObject = {
    "property1": {
        param1: '',
        param2: '',
        param3: '',
        data: [
            {key: value},
            {key: value},
            {key: value},
            {key: value}
        ],
        param4: ''
    },
    "propery2": {
        param1: '',
        param2: '',
        param3: '',
        data: [
            {key: value},
            {key: value},
            {key: value},
            {key: value}
        ],
        param4: ''
    }

}

How can I check if the property exists inside this json and after that how can I extract only data[{}] and param1 for example?

Can't think of something that would be helpful and working

Title doesn't match with body, so here's iteration and direct access:

Iterating over Objects: for..in

let object = { a: 1, b: 2, c: 3 }

for (let key in object) {
  console.log(key + ' = ' + object[key])
}

// a = 1
// b = 2
// c = 3

Iterating over Arrays: for..of

let vector = ['a', 'b', 'c']

for (let element of vector) {
  console.log(element)
}

// a
// b
// c

Accessing Array Values At Position

let vector = ['a', 'b', 'c']
console.log(vector[0]) // a
console.log(vector[1]) // b
console.log(vector[2]) // c
console.log(vector[3]) // undefined

Accessing Object Values By Key

let object = { a: 1, b: 2, c: 3 }
console.log(object["a"]) // 1
console.log(object.a)    // 1
console.log(object["b"]) // 2
console.log(object.b)    // 2
console.log(object["c"]) // 3
console.log(object.c)    // 3
console.log(object["d"]) // undefined
console.log(object.d)    // undefined

Check if Exists

Since undefined won't trigger on an if-condition but values will, just write if object["key"] ; it will execute the next code block if the key exists, otherwise it won't. (Not suggested practice.)

something like this?

 const matchedProperty = "property1" const jsonObject = { "property1": { param1: '', param2: '', param3: '', data: [ {key: 'value'}, {key: 'value'}, {key: 'value'}, {key: 'value'} ], param4: '' }, "propery2": { param1: '', param2: '', param3: '', data: [ {key: 'value'}, {key: 'value'}, {key: 'value'}, {key: 'value'} ], param4: '' } } const result = jsonObject.hasOwnProperty(matchedProperty)?{param1: jsonObject[matchedProperty].param1, data: jsonObject[matchedProperty].data}:{} console.log(result)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM