javascript - 计算嵌套 json 的子项中的值并将其作为新元素添加到原始嵌套 json

标签 javascript reactjs react-native

我有以下 json:

click: false
image: "xxxx"
  items: Array(4)
  0:
    click: false
    image: "xxxx/chapter.png"
    items: Array(12)
        0:
         click: true
         courseID: 1
         coverImage:"xxxxx"
         duration: "(2':20)"
         image: "xxxx/chapter.png"
         pdfLinkIos:"xxxxx"
         title: "Motion title"
         videoLink: "xxxx"
        _internalId: "MV6ZgJ_BxxeD"

我想添加一个使用异步函数计算的元素。计算应针对具有“click:true”的级别执行。我可以成功解析函数,甚至可以正确计算它。 这是我的代码:

       parseValues=(obj)=> {
          for(var k in obj) {
              if(obj[k] instanceof Object) {
                  this.parseValues(obj[k]);
              } else {
                console.log("[coverRnder] all", k, );
                  if(obj["click"]){ 
                    return this.accumulateRating(obj).then(rating => {
                        obj.push(rate: rating);
                    });
                  //obj[k].push("");
                  }
              }
          }              
      };

  async accumulateRating(node) {
     return;
  }

我唯一的问题是我不知道如何将计算出的元素添加到我的原始 json 中,使其达到适当的水平。 (this.state.courseContent)。 事实上,我需要的是在我的原始 json 中有 accumulateRating 的输出,其标题如下:

  click: false
    image: "xxxx"
      items: Array(4)
      0:
        click: false
        image: "xxx"
        items: Array(12)
            0:
             click: true
             courseID: 1
             coverImage:"xxxxxx"
             duration: "(2':20)"
             image: "xxxx"
             pdfLinkIos:"xxxxxx"
             title: "Motion title"
             videoLink: "xxxx"
            _internalId: "MV6ZgJ_BxxeD"
             rate: 3.5

你能帮帮我吗?

最佳答案

push() 适用于数组而非对象。要将键/值对添加到对象,您只需定义它即可。

return this.accumulateRating(obj).then(rating => {
    obj.rate = rating;
    //obj["rate"] = rating; also works
});

关于javascript - 计算嵌套 json 的子项中的值并将其作为新元素添加到原始嵌套 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56872141/

相关文章:

javascript - Bing map v8 - SVG 内联图钉未触发正确的信息框

javascript - 连接到 Redux store 的 React 组件的递归渲染

javascript - Formik 在空白字段上也显示错误

reactjs - 为 React Native TextInput 创建 ref 时的 TypeScript 问题

javascript - 如何使用 react 导航更改屏幕(使用按钮)

javascript - 根据对象内的值获取对象键

javascript - 如何根据下拉菜单隐藏输入

javascript - 图像和 anchor 的 FancyBox 问题

javascript - 如何在react中使用带有useState钩子(Hook)的回调

reactjs - Material-UI:如何使用 TextField 应用输入属性