当前位置: 首页 > 知识库问答 >
问题:

如何从一个对象中提取多个键并打印输出

蓟捷
2023-03-14

如何从事件处理程序中的对象打印多个键?

这里是链接到我的代码-https://codesandbox.io/s/suspicious-hamilton-erkqv

在第35行,我用对象“x”调用事件处理程序ChangeName。我可以打印一个名为“name”(x.name)的键。我如何打印x对象的所有3个道具(名称、id、类型)??

尝试将x转换为object.keys(x)的数组,但当我循环通过输出时,它会给出一个错误,说不能使用map函数

 const ChangeName = x => {
    setvalue(x.name);
  };


  <div>{value}</div> // display the results

共有2个答案

谢飞舟
2023-03-14

正在运行的代码:


import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";

function App() {
  const [posts, setposts] = useState([]);
  const [values, setvalue] = useState([]);

  useEffect(() => {
    const posts = [
      {
        id: 1,
        name: "Name 1",
        type: "Type 1"
      },
      {
        id: 2,
        name: "Name 2",
        type: "Type 2"
      },
      {
        id: 3,
        name: "Name 3",
        type: "Type 3"
      },
      {
        id: 4,
        name: "Name 4",
        type: "Type 4"
      }
    ];

    setposts(posts);
  }, []);

  const ChangeName = x => {
    console.log(Object.values(x));
    Object.values(x).map(k => setvalue(k));
  };

  return (
    <div>
      <ul>
        {posts.map(post => (
          <li key={post.id}>
            {post.name},{post.type}
            <button onClick={ChangeName.bind(this, post)}>More Info</button>
          </li>
        ))}
      </ul>

      <div>{values}</div>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);


你需要设置值而不是值。

公西良骏
2023-03-14

你的值不是一个数组,它是一个对象,为什么你不能使用map方法,这就是它的工作原理:

import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";

function App() {
  const [posts, setposts] = useState([]);
  const [value, setvalue] = useState("");

  useEffect(() => {
    const posts = [
      {
        id: 1,
        name: "Name 1",
        type: "Type 1"
      },
      {
        id: 2,
        name: "Name 2",
        type: "Type 2"
      },
      {
        id: 3,
        name: "Name 3",
        type: "Type 3"
      },
      {
        id: 4,
        name: "Name 4",
        type: "Type 4"
      }
    ];

    setposts(posts);
  }, []);

  const ChangeName = x => {
    setvalue(x);
  };

  return (
    <div>
      <ul>
        {posts.map(post => (
          <li key={post.id}>
            {post.name},{post.type}
            <button onClick={() => ChangeName(post)}>More Info</button>
          </li>
        ))}
      </ul>

      <div>
        {value.name}
        {value.id}
        {value.type}
      </div>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
 类似资料:
  • 问题内容: 我对Json文件很陌生。如果我有一个包含多个json对象的json文件,例如: 我想将所有“时间戳记”和“有用性”提取到一个数据帧中: 有谁知道解决此类问题的一般方法? 问题答案: 使用json数组,格式为: 然后将其导入到您的python代码中 现在,数据的内容是一个带有字典的数组,字典表示每个元素。 您可以轻松访问它,即:

  • 我目前有两个表格:劳动力和员工。劳动力表是所有提交简历加入公司的潜在员工的集合。Employees表是Workforce表中实际雇用的人员的集合。 环境:1。Eclipse 2。Java(J2EE)3。Maven 4。Spring5。JPA(JpaRepository) 为简洁起见,我将坚持使用与数据提取和数据插入另一个表有关的文件。 由于两个表的相似性,Workforce表中的许多字段将与Emp

  • 我现在的代码: 我希望它打印两个数组的交集,而不需要再次打印相同的数字。 E、 g:code>[1,2,2,1]和的交点应该只打印一次,而不是像我现在的代码那样。

  • 我有一个简短的问题 我有飞行、水上课程和动物课程 如果我只想打印出动物对象数组中的飞行物体 做这样的事安全吗 或 执行此操作并重写toString方法 我是java新手,所以我甚至不确定这两个是否正确。所以欢迎任何帮助 谢谢你的帮助 编辑- 对不起,模棱两可的问题这是我问题的一个例子 我可以做输出 = A.toString() 来获取对象字符串还是我必须做 并重写toString方法以打印出类和示

  • 我有以下数据结构: <代码>地图 我想从这个复杂的 Map 对象中提取它的值(它本身是另一个字符串 Map)。我目前正在这样做: 上面的实现给了我一个新的Map对象,由于外部循环,它正在迭代。似乎我错过了什么。 如何从复杂的 Map 对象中提取内部 Map 对象? 编辑: 回应AlexWien的评论 原始数据结构: 原始数据结构背后的原因是为一对id(ID1和ID2)存储一个值。ID1和ID2可以

  • 我的数组正在加载,并且正在按计划(按照它们在文件中出现的顺序)将卡打印出来。当我尝试在单独的方法中循环遍历arraylist以检查数据是否存在时,它只打印最后一个对象而不是每个对象。有人能告诉我为什么吗? 加载法 和getAll()方法 运行时,它只打印出.txt文件中的最后一张牌“KS”(黑桃之王)。有人能告诉我为什么会这样吗? 谢谢 }