Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检索指向尚未定义的对象的引用值_Javascript_Reactjs - Fatal编程技术网

Javascript 检索指向尚未定义的对象的引用值

Javascript 检索指向尚未定义的对象的引用值,javascript,reactjs,Javascript,Reactjs,我正在接收一个JSON对象。每个对象可以包含一个数字或对同一JSON中另一个对象的引用,也可以是数字或引用等 它看起来与此类似: { "data":[ { "value":5 }, { "value":3 }, { "value":7 }, { "

我正在接收一个JSON对象。每个对象可以包含一个数字或对同一JSON中另一个对象的引用,也可以是数字或引用等

它看起来与此类似:

{
   "data":[
      {
         "value":5
      },
      {
         "value":3
      },
      {
         "value":7
      },
      {
         "reference":1
      }
   ]
}
该引用意味着该值将与本例中的
data[reference.value]
相同
data[1]=3
。所以最困难的部分是当我收到一个物体时,一个参考物体指向他下面的物体。这意味着在尝试获取值时,它没有定义,因为我像往常一样迭代它们。该引用还可以指向不存在的对象。这是我需要解决的问题:

 {
       "data":[
          {
             "reference":1
          },
          {
             "reference":2
          },
          {
             "reference":3
          },
          {
             "value":10
          }
       ]
    }

那么,有人能给一个可能的解决方案一个提示吗。我使用React,所以我可以在这里使用状态,虽然我也不确定它看起来如何,这是简单的js代码。

当您迭代列表时,simpy只需使用递归来获取值。像这样的

const getValue = (item) => {
  if(item.value) return item.value;
  return (getValue(data[item.reference]))
}
const values = data.map(item => getValue(item));