使用 jQuery 在 Angular 中使用嵌套的 $each 函数和条件填充数组

Populating array with nested $each functions and conditionals in Angular with jQuery

本文关键字:函数 each 条件 数组 填充 嵌套 jQuery Angular 使用      更新时间:2023-09-26

我有一个 json 对象,我从一个角度应用程序中的 get 请求中获取。它给了我两个主要属性dataincludedincluded对象在某种程度上是与data对象的关系。例如,data显示消息并included这些消息的发件人。我设法通过检查数据对象中的一个属性是否与包含对象中的另一个属性相同来将每条消息与发件人相关联。这是我的代码

$http.get('data.json').then(
  function(jsonAPI) {
    console.log(jsonAPI);
    var dataObj = {};
    var messages = [];
    $.each(jsonAPI.data.data, function(x, data) {
      dataObj[x] = data;
      $.each(jsonAPI.data.included, function(y, included) {
        if (data.relationships.sender.data.id == included.id) {
          dataObj[x].sender = included;
        }
      });
      messages.push(dataObj[x]);
    });
    $scope.newMessages = messages;
  },
  function(errorResponse) {
    // todo handle error.
  }
);   

我创建了一个新数组,其中包含所有data对象以及 sender 属性下的发送者信息。问题是添加了一个名为 user_data_template 的新关系。我希望以类似的方式能够将相应的user_data_template数据传递给messages数组。如何更改上述嵌套$each函数来实现这一点?

这是一个工作弹道

我设法找到了解决方案。我不得不将代码更改为以下内容:

    $.each(jsonAPI.data.data, function(x, data) {
      dataObj[x] = data;
      $.each(jsonAPI.data.included, function(y, included) {
        if(data.relationships.sender.data.id == included.id && included.type == "user") {
          dataObj[x].sender = included;
        }
        if(data.relationships.user_data_template.data !== undefined) {
          if(data.relationships.user_data_template.data.id == included.id && included.type == "user_data_template") {
            dataObj[x].question = included;
          }
        }
      });
      messages.push(dataObj[x]);
    });

和新的普伦克