reactjs 在对象中添加索引以便循环

neskvpey  于 2023-06-22  发布在  React
关注(0)|答案(3)|浏览(121)

问题:我得到了一个JSON文件,我将它转换为一个对象,并在for循环中循环它。但在单个数据的情况下,我得到以下内容:例1:单数据 {     "Id": 2140,     “EmpId” : 4732,     “Flag”: "No"   }
例2:对于多个数据,我得到以下:{ "0":  {     "Id": 2140,     “EmpId” : 4732,     “Flag”: "No"   }, "1":  {     "Id": 2141,     “EmpId” : 4712,     “Flag”: “Yes”   } }
当我尝试在for循环中循环时,我得到它为未定义的单个数据,即为Eg 1,对于多个数据,即Eg 2,它工作正常。

const a = Object.values(data).length;
    console.log(a);
    for (let i = 0; i < a; i++) {
      const res = data[i];
}

使用下面的代码将其转换为JSON

const data = JSON.parse(message.messageText);

在这个for循环中,我该如何处理它或者我该如何使单个数据变成下面的格式
{ "0":  {     "Id": 2140,     “EmpId” : 4732,     “Flag”: "No"   }}
以便读取0和循环
甚至尝试使用object.entries,但它读取id为1,empid为second等等。
任何帮助都是非常感谢的。
谢谢你
我尽力了

const a = object.entries(data)

但它将id读取为1,将empid读取为second,依此类推。

lf5gs5x2

lf5gs5x21#

变更

const data = JSON.parse(message.messageText);`

对此:

const parsed = JSON.parse(message.messageText);
const data = parsed[0] ? parsed : { 0: parsed };

这样,您就可以检查0项是否存在于解析的数据中,如果不存在,就创建它。

scyqe7ek

scyqe7ek2#

您可以检查0键是否存在于您接收的数据中。如果它存在,这意味着,你可以做你的正常循环。
否则,您可以添加一个0键,其值将是您在输入中收到的值。

function read(data){
  if(data?.[0]){
     const a = Object.values(data).length;    
     for (let i = 0; i < a; i++) {
       const res = data[i]
     }
  } else{
    const tempData = {}
    tempData[0] = data
    console.log(tempData)
  }
}
qfe3c7zg

qfe3c7zg3#

let data={ "0":  {     "Id": 2140,     "EmpId" : 4732,     "Flag": "No"   }, "1":  {     "Id": 2141,     "EmpId" : 4712,     "Flag": "Yes"   } }

const a = Object.values(data).length;
console.log(a);

Object.keys(data).forEach((k, i) => { 
   console.log(i, data[k]);
});

相关问题