Warm tip: This article is reproduced from serverfault.com, please click

How to filter list of object in array by element (array) that starts with string

发布于 2020-12-07 12:56:46

I have the following object table :

var search = ["LFBB"];
var data = [
  { id: 1, date: "18-02-2016", valname: ["LFBBR1", "LFFFE5", "LFMBR1", "LFBB5"]  },
  { id: 2, date: "19-02-2016", valname: ["LFFF6", "EESF7", "LFMBR1", "LFGG3"]  },
  { id: 3, date: "14-02-2016", valname: ["LFBBL2", "LFFBC5", "LFMBR1", "LFBB5"]  },
  { id: 4, date: "17-02-2016", valname: ["LEEE5", "LFFFE8", "BGTT5", "LFHT9"]  },
];

var search = "LFBB"

I would like to filter the data if the value of "valname" match with the value of "search"

if search = "LFBB" the filter should return the following result:

result after filter :

data = [
             { id: 1, date: "18-02-2016", valname: ["LFBBR1", "LFFFE5", "LFMBR1", "LFBB5"]},
             { id: 3, date: "14-02-2016", valname: ["LFBBL2", "LFFBC5", "LFMBR1", "LFBB5"]}
          ],

I tried to use

var startsWithN = data.((data) => data.startsWith(source));

but it doesn't work

Thanks for your help

Questioner
Flora8832
Viewed
0
Yuva Raja 2020-12-07 21:12:39

    var search = "LFBB";
    var data = [
      { id: 1, date: "18-02-2016", valname: ["LFBBR1", "LFFFE5", "LFMBR1", "LFBB5"]  },
      { id: 2, date: "19-02-2016", valname: ["LFFF6", "EESF7", "LFMBR1", "LFGG3"]  },
      { id: 3, date: "14-02-2016", valname: ["LFBBL2", "LFFBC5", "LFMBR1", "LFBB5"]  },
      { id: 4, date: "17-02-2016", valname: ["LEEE5", "LFFFE8", "BGTT5", "LFHT9"]  },
    ];
    output=data.filter(x=>x.valname.findIndex(v=>v.startsWith(search))>-1);
    console.log(JSON.stringify(output, null, 4));

output will be generated

[
    {
        "id": 1,
        "date": "18-02-2016",
        "valname": [
            "LFBBR1",
            "LFFFE5",
            "LFMBR1",
            "LFBB5"
        ]
    },
    {
        "id": 3,
        "date": "14-02-2016",
        "valname": [
            "LFBBL2",
            "LFFBC5",
            "LFMBR1",
            "LFBB5"
        ]
    }
]