如何从列表打字稿中删除元素

时间:2018-11-30 13:23:45

标签: javascript typescript

我使用Angular 6,我有一个列表,我使用Angular5-csv将它导出到CSV文件,我想删除列表的最后一列,即列表中每个数组的最后一个元素。我的清单看起来像

let traceslist = [
{
  "name": "abcd",
  "email": "abcd@example.com",
  "decision": "yes",
  "userid": "abcd"
},
{
  "name": "phill";
  "email": "abcd@example.com";
  "decision": "yes";
  "userid": "phill";
},
{
  "name": "raj";
  "email": "raj@example.com";
  "decision": "no";
  "userid": "raj";
},
{
  "name": "john";
  "email": "john@example.com";
  "decision": "yes";
  "userid": "john";
}
]

现在,我要删除元素userid,以便该列不会出现在我的csv文件中。我尝试使用拼接,但未成功。

如果你们中的任何一个都可以帮助我,那将是很棒的。

5 个答案:

答案 0 :(得分:1)

使用.map数组方法从数组中的每个项目中删除用户ID。

traceslist = traceslist.map(item => {
  delete item.userid;
  return item;
});

顺便说一句,它与角度无关,因此您的标题和标签有点误导。数组在纯JavaScript中是相同的。

答案 1 :(得分:0)

这是一个简单的JavaScript问题。另外,您需要将数据转换为字符串。 请参阅以下示例:

let traceslist = [
  {
    'name': 'abcd',
    'email': 'abcd@example.com',
    'decision': 'yes',
    'userid': 'abcd'
  },
  {
    'name': 'abcd',
    'email': 'abcd@example.com',
    'decision': 'yes',
    'userid': 'abcd'
  }
];

traceslist.forEach( item => delete item.userid );
console.log(traceslist);

答案 2 :(得分:0)

我们可以使用 .map()方法来实现

UIImagePickerControllerQualityTypeHigh   
UIImagePickerControllerQualityTypeMedium  
UIImagePickerControllerQualityTypeLow     
UIImagePickerControllerQualityType640x480
UIImagePickerControllerQualityTypeIFrame1280x720
UIImagePickerControllerQualityTypeIFrame960x540 

答案 3 :(得分:0)

首先,您的JSON格式是错误的,分号(;)是第一个,并且字符串应该用引号引起来,请在下面进行检查

let obj = [{
    name: "abcd",
    email: "abcd@example.com",
    decision: "yes",
    userid: "abcd",

  },
  {
    name: "abcd",
    email: "abcd@example.com",
    decision: "yes",
    userid: "abcd",

  },
  {
    name: "raj",
    email: "raj@example.com",
    decision: "no",
    userid: "raj",

  },
  {
    name: "john",
    email: "john@example.com",
    decision: "yes",
    userid: "john",

  }
]

let filtered = obj.map(item => {
  delete item.userid;
  return item;
});
console.log(filtered);

答案 4 :(得分:0)

您不能使用Delete从数组中删除项目。这仅用于从对象中删除属性。

您应该使用splice从数组中删除元素:

deleteMsg(removeElement:string) {
    const index: number = traceslist.indexOf(removeElement);
    if (index !== -1) {
        traceslist.splice(index, 1);
    }        
}