javascript - 尝试在 React 中迭代 JSON 对象

标签 javascript json reactjs

我正在尝试为我拥有的每个 JSON 值显示一个切换复选框。这就是 element

的 json 对象的样子
{
    "sourceIP": {
        "Primary": ["237.100.100.3", "238.0.4.8"],
        "Secondary": ["237.0.1.178", "237.1.1.91"]
    },
    "multicastIP": {
        "Primary": ["10.208.153.129", "238.0.4.8"],
        "Secondary": ["10.208.133.58", "238.0.4.8"]
    }
}

所以我想迭代元素而不是像这样对其进行硬编码:

const CustomToggle = ({ element}) => (
<List divided verticalAlign='middle'>
    <Segment textAlign='left' style={{paddingLeft: '7.5em'}}>
        <Checkbox
            toggle
            label={(JSON.stringify(element.sourceIP.Primary[0]))}
            value={(JSON.stringify(element.sourceIP.Primary[0]))}
        />
        <Checkbox
            toggle
            label={(JSON.stringify(element.sourceIP.Primary[1]))}
            value={(JSON.stringify(element.sourceIP.Primary[1]))}
        />
        <Checkbox
            toggle
            label={(JSON.stringify(element.sourceIP.Secondary[1]))}
            value={(JSON.stringify(element.sourceIP.Secondary[1]))}
        />
    </Segment>

</List>

);

我一直在尝试 forEach 和 .map 但这些似乎都不起作用。我不想对 element 中的每个 json 值进行硬编码。我怎样才能迭代我的元素 JSON 对象?

最佳答案

Object.keys(element).reduce((a,c) => a.concat(...Object.values(element[c])),[])

this transformed data gives array of ip adtresses. So, now you can iterate it

const CustomToggle = ({ element}) => {
  const elements = Object.keys(element).reduce((a,c) => a.concat(...Object.values(element[c])),[]); 
  return (
    <List divided verticalAlign='middle'> 
       <Segment textAlign='left' style={{paddingLeft: '7.5em'}}>
          {elements.map(ip => <Checkbox toggle label={ip} value={ip} />}
        </Segment> 
     </List>
  )
}

关于javascript - 尝试在 React 中迭代 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61131381/

相关文章:

javascript - Angular : Bind function from child to parent

javascript - HTML DOM 位置刷新率

javascript - Javascript条件语句问题

arrays - 将 json 数组传递给另一个 View Controller 并使用 segue 在不同的标签中显示它

javascript - 我应该如何处理 React 的 componentWillUnmount 中的离开动画?

javascript - .setAttribute vs .attribute= 背后发生了什么?

javascript - 使用 .getJSON 但不使用嵌入数据时控制台中出现未定义的 JSON 错误

android - 如何使用 JSON 对象传递 JSON 数组

php - 将 json 文件从 php 连接到 ReactJs

reactjs - Material-UI 定义列表