Menerapkan filter pencarian untuk array multidimensi

Saya mencoba menerapkan pencarian dalam array multidimensi.

Ini susunan saya

var data= [ [1, "UJI", "0", "110"], ["2", "baris2", "0", "111"],[3, "Uji1", "0", " 113"]];

Di bawah ini adalah kodenya:

var data= [ [1, "TEST", "0", "110"], ["2", "row2", "0", "111"],[3, "Test1", "0", "113"]];

arrayFilter(array, value) {
 return array.filter(function (object) {
    return Object.keys(object).some(function (key) {
        return object[key.toLowerCase()]===(value.toLowerCase()); 
    });
});
}
console.log(this.arrayFilter(data,test)

Fungsi ini mengembalikan [1, "TEST", "0", "110"]

Saya ingin mengembalikan kecocokan sebagian juga. yaitu ia harus mengembalikan [[1, "TEST", "0", "110"],[3, "Test1", "0", "113"]]

Bagaimana saya bisa mencapai ini?


person Preeti    schedule 05.05.2020    source sumber
comment
Apa kriteria pengisinya?   -  person Ashish Ranjan    schedule 05.05.2020
comment
Gunakan Pola dan Pencocokan   -  person brijesh    schedule 05.05.2020
comment
@brijesh Saya cukup yakin Pattern dan Matcher hanya ada di Java, tag Java di sini salah ditempatkan   -  person user    schedule 05.05.2020


Jawaban (1)


karena test1 tidak sama dengan test;

alih-alih ===, Anda dapat menggunakan penyertaan

let arrayFilterFn = (arrayToFilter, value) => {
    return arrayToFilter.filter(subArray => {
        return subArray.some(v => {
            v = v+''; // convert number to string
            return v.toLowerCase().includes(value.toLowerCase())
        })
    })
}
person tengda SU    schedule 05.05.2020