Home > Blockchain >  Accessing objects inside arrays
Accessing objects inside arrays

Time:08-16

My API is returning the below response. I am trying to filter through the links to check if the source and target name properties in each object match a specific string. Any idea how I can do this, I am have troubling getting to the name property.

Currently this.chart.links.target.name and this.chart.links.source.name are returning undefined. I cannot seem to access the name properties.

    Proxy {nodes: Array(69), links: Array(68)}
    [[Handler]]: Object
    [[Target]]: Object
    links: Array(68)
    0:
    circular: false
    index: 0
    real_value: 10
    source: {name: 'String1', color: 'yellow', index: 30, sourceLinks: Array(30), targetLinks: Array(24), …}
    target: {name: 'String2', color: 'red', index: 0, sourceLinks: Array(0), targetLinks: Array(1), …}
    value: 10
    width: 2.152297042164877
    y0: 111.36731918963686
    y1: 193.80113278791737
    [[Prototype]]: Object
    1: {source: {…}, target: {…}, value: 10, real_value: 10, index: 1, …}
    2: {source: {…}, target: {…}, value: 10, real_value: 10, index: 2, …}
    3: {source: {…}, target: {…}, value: 10, real_value: 10, index: 3, …}
    4: {source: {…}, target: {…}, value: 10, real_value: 10, index: 4, …}
    5: {source: {…}, target: {…}, value: 10, real_value: 10, index: 5, …}
    6: {source: {…}, target: {…}, value: 10, real_value: 10, index: 6, …}
    7: {source: {…}, target: {…}, value: 10, real_value: 10, index: 7, …}

this is how my filter is looking:

const dataToFilter = ['String1', 'String2']

    const links = this.chart.links.filter(io => 
          !dataToFilter.includes(io.source.name || io.target.name)
        )

CodePudding user response:

Instead of !dataToFilter.includes(io.source.name || io.target.name) you want to have !(dataToFilter.includes(io.source.name) || dataToFilter.includes(io.target.name)) to check against the names separately.

  • Related