简体   繁体   English

在数组角上逐个字母地过滤

[英]Filter letter by letter on Array Angular

I am trying to filter letter by letter on an array as below 我正在尝试如下过滤一个字母一个字母

MyJSON MyJSON

"mainArr":[  
       {  
          "data":false,
          "myArr":[  
             {  
                "myNumber": 12345,
             },
             {
                "myNumber": 8961,
             }
          ]
       }
    ]

And here is code which I am drafting below for search but unable to pick object based on letter keypress or key down or ion-input 这是我在下面草拟的代码,用于搜索,但是无法根据字母按键或按下或离子输入来选择对象

    if (filterVal && filterVal.trim() !== '') {
        this.myArray = this.myArray.filter(function (item) {
          const results: any = [];
          const obj = item.mainArr[0];
          if (_.has(obj, 'myArr')) {
            console.log(obj.myArr.indexOf(filterVal));

            for (let i = 0; i < obj.myArr.length; i++) {
               if (obj.myArr.indexOf(filterVal) !== -1)
                 return results.push(obj.myArr[i]);
               }
            }
          }
        });
      }

Refered URL 引用网址

Tried another way of implementing it, but backspace is not re-binding to original array 尝试了另一种实现方式,但是退格键未将其重新绑定到原始数​​组

let results: any = [];
events.subscribe('filterSearch', (filterVal: string) => {
  if (filterVal && filterVal.trim() !== '') {
    results = Object.assign(this.allEventsSorted.filter(function (item: any): any {
      const fltDty = item.mainArr[0];

      if (_.has(fltDty, 'myArr')) {
        return _.some(
          item.mainArr[0].myArr,
          function (tag): any {
            return _.startsWith(tag.myNumber, filterVal);
            // return _.includes(tag.myNumber, filterVal);
          }
        );
      }
    }));
    this.allEventsSorted = results;
  }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM