javascript - 从 Angular 4 的数组列表中删除错误的项目

标签 javascript arrays angular slice

我有如下的列表项数组

L3 - LO
 L7 - LO
 L7 - L3
 % L3 - LO
 % L7 - LO
 % L7 - L3

我正在尝试使用 Angular 4 中的以下代码通过拼接方法删除

但它也如何删除其他项目。我只想删除包含 L3 的字符串,并且它也会删除此项目 % L7 - LO

 if (e.target.value === "L3") {
    debugger;
    let l7L3112Index = this.formulalist.findIndex(item => item.Name === "L7 - L3");
    let l7l32456Index = this.formulalist.findIndex(item => item.Name === "% L7 - L3");
    let l3ls28Idex = this.formulalist.findIndex(item => item.Name === "L3 - LS");
    let l3ls23Idex = this.formulalist.findIndex(item => item.Name === "% L3 - LS");
    let l3Lo87Index = this.formulalist.findIndex(item => item.Name === "L3 - LO");
    let l3lO287Index = this.formulalist.findIndex(item => item.Name === "% L3 - LO");
    this.formulalist.splice(l3lO287Index, 1);
    this.formulalist.splice(l7L3112Index, 1);
    this.formulalist.splice(l7l32456Index, 1);
    this.formulalist.splice(l3ls28Idex, 1);
    this.formulalist.splice(l3ls23Idex, 1);
    this.formulalist.splice(l3Lo87Index, 1);

  }

任何人都可以对这个问题提出任何想法吗? 非常感谢提前

最佳答案

已提供 StackBlitz demo关于您关心的问题。

如果您的 FormulaList 是一个对象数组

formulaList = [
    { name: 'L3 - LO' },
    { name: 'L7 - LO' },
    { name: 'L7 - L3' },
    { name: '% L3 - LO' },
    { name: '% L7 - LO' },
    { name: '% L7 - L3' }
];

您可以使用 Array.filter 和 Regex 对其进行过滤

this.formulaList = this.formulaList.filter(({ name }) => !name.match(/L3/g));

然后它会显示没有 L3s 关键字的列表 enter image description here

关于javascript - 从 Angular 4 的数组列表中删除错误的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712523/

相关文章:

php - 如何有效地将两个(或更多)关联数组与公共(public)键组合起来

angular - 数组未在 DOM 中拼接,但在控制台中是 - Ionic 2+/Angular2+

Angular 4 在@ViewChild 上使用setter

javascript - Knockout Js 计算出在模型中不起作用

javascript - 图片在 HTML5 Canvas 中不显示

python - 如何使用 bool 型方形对称 numpy 数组中的真值存储存储索引对?

javascript - 在点击事件中通过语句调用函数

javascript - 检测设备JS和切换类

javascript - 无法在 Js 函数中将 HTML Collection 作为参数传递?

javascript - for循环的交错效果