从“对象的对象"中删除对象. [英] Remove Object from "Object of Objects"

查看:85
本文介绍了从“对象的对象"中删除对象.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含这样的objetcs的对象.Object {MAILING ADDRESS: "P O BOX 59", APN: "066-102-11-1"}.现在,我需要没有空对象的数据.就像我得到这样的输出 Output

I have a Object that contain objetcs like this.Object {MAILING ADDRESS: "P O BOX 59", APN: "066-102-11-1"} . Now I need data without empty Object. Like I get output like this Output

Object {MAILING ADDRESS: "P O BOX 59", APN: "066-102-11-1"}
Object {MAILING ADDRESS: "", APN: ""}
Object {MAILING ADDRESS: "P O BOX 3", APN: "066-105-11-1"}
Object {MAILING ADDRESS: "", APN: ""} 

所以在这种情况下,我不想获得第二和第四对象.并且在100的情况下,我不想获得2,4,6,8..100指数.因为一段时间后的输出是重复的,所以我必须删除它. 我得到的输出的屏幕截图

So in this case I dont want to get 2nd and 4th object. And in case of 100 I dont want to get 2,4,6,8..100 index . Because output after one time is repeating and I have to remove this. ScreenShot of output I getting

//Code How I am creating this
ExportTool.prototype.click = function(value) {
  var lidtest = mapport.panels.info.current.selection.features.mem;

  if (value != undefined) {
    var lid = lidtest[value].attributes.layer_id;
  } else {
    var lid = lidtest[0].attributes.layer_id;
  }

  if (!lid) return;
  var tbody;
  var thead;
  tbody = $('<tbody></tbody>');
  thead = $('<thead></thead>');
  self = this;

  // Reset
  this.tblHeader = [];
  this.tblData = [];
  this.labelData = [];

  // thead.children().remove();
  // tbody.children().remove();
  //var tbody;

  var layer = mapport.layer(lid);
  var tr = $('<tr></tr>');

  layer.fields.each(function(field) {
    tr.append($('<th ></th>').text(field.name));
    // Table heading for the PDF
    if (self.availableForTable.indexOf(field.name.toUpperCase()) != -1)
      self.tblHeader.push(field.name);
  });

  tbody.append(tr);

  var features = mapport.panels.info.current.features();
  for (var i = 0; i < features.length; ++i) {
    if (features[i].geometry != null) {
      var data = features[i].attributes.data,
        row_data = [],
        row_field, obj_field = {};

      tr = $('<tr></tr>');

      layer.fields.each(function(field) {
        var field_name = field.name.toUpperCase();
        var td = $('<td></td>');
        if (data[field.id] != null) td.text(data[field.id]);
        tr.append(td);

        if (self.availableForTable.indexOf(field_name) != -1) {
          row_field = (data[field.id] != null) ? data[field.id] : '';
          row_data.push(row_field);
          obj_field[field_name] = row_field;
        }
      });

      row_data = row_data.filter(function(entry) {
        return /\S/.test(entry);
      });

      obj_field = JSON.parse(obj_field);
      console.log(obj_field);
      // Table Data for the PDF
      this.tblData.push(row_data);
      // Table Data for the PDF
      this.labelData.push(obj_field);
      tbody.append(tr);
      $('#table_multi_layers').append(tbody);
    }
  }
}

推荐答案

您可以使用像这样的过滤器选项.您可以将对象更改为数组并应用过滤器.

You can use filter option like this. You can change your object to array and apply filter.

var someArray = $.map(obj_field, function(value, index) {
    return [value];
});

someArray = [{
    MAILINGADDRESS: "P O BOX 59",
    APN: "066-102-11-1"
  },
  {
    MAILINGADDRESS: "",
    APN: ""
  },
  {
    MAILINGADDRESS: "P O BOX 59",
    APN: "066-102-11-1"
  }, {
    MAILINGADDRESS: "",
    APN: ""
  }
];
result = someArray.filter(function(el) {
  return el.APN !== "";
});

console.log(JSON.stringify(result, null, ' '));

这篇关于从“对象的对象"中删除对象.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆