提问者:小点点

循环遍历一个对象并返回HTML元素,类似于.map方法[复制]


我使用JavaScript Array map()方法迭代数组并将超文本标记语言渲染到我的页面。例如,我有["Mike","David","Peter", Steve"]我可以这样使用Reach渲染它们:

const RenderNames = () => {
  let names = ["Mike", "David", "Peter", "Steve"];

  const renderNames = (allNames) => {
    return allNames.map( (name) => {
      return <div> hello {name} </div>
    }
  }
  
  return (
    <div> {renderNames(names)} </div>
  )


}

好的,现在我需要规范化该数组以获得这样的对象: {“243fx”: “Mike”, “g3Frt”: “David”, “8879a”: “Peter”, “dkr45”: “Steve”}

那么我如何循环这个对象并渲染所有这些元素呢?

const RenderNames = () => {
  let names = {"243fx": "Mike", "g3Frt": "David", "8879a": "Peter", "dkr45": "Steve"};

  const renderNames = (allNames) => {
    ????
    ????
  }
  
  return (
    <div> {renderNames(names)} </div>
  )


}


共1个答案

匿名用户

您必须使用Object.entries遍历对象,该对象将为您提供(属性名称)及其

const RenderNames = () => {
  const names = {
    "243fx": "Mike",
    g3Frt: "David",
    "8879a": "Peter",
    dkr45: "Steve",
  };

  const renderNames = (allNames) => {
    return Object.entries(allNames).map(([_key, value]) => <div>hello {value}</div>);
  };

  return <div> {renderNames(names)} </div>;
};