ใช้ตัวกรองการค้นหาสำหรับอาร์เรย์หลายมิติ

ฉันกำลังพยายามใช้การค้นหาในอาเรย์หลายมิติ

นี่คืออาร์เรย์ของฉัน

var data= [ [1, "ทดสอบ", "0", "110"], ["2", "row2", "0", "111"],[3, "Test1", "0", " 113"]];

ด้านล่างเป็นรหัส:

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)

ฟังก์ชันนี้ส่งคืน [1, "TEST", "0", "110"]

ฉันต้องการให้มันกลับมาแข่งขันบางส่วนด้วย นั่นคือควรส่งคืน [[1, "TEST", "0", "110"],[3, "Test1", "0", "113"]]

ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร?


person Preeti    schedule 05.05.2020    source แหล่งที่มา
comment
เกณฑ์ฟิลเลอร์คืออะไร?   -  person Ashish Ranjan    schedule 05.05.2020
comment
ใช้รูปแบบและ Matcher   -  person brijesh    schedule 05.05.2020
comment
@brijesh ฉันค่อนข้างแน่ใจว่า Pattern และ Matcher มีอยู่ใน Java เท่านั้น แท็ก Java ที่นี่ถูกวางผิด   -  person user    schedule 05.05.2020


คำตอบ (1)


เพราะ test1 ไม่เท่ากับ test;

แทนที่จะเป็น === คุณสามารถใช้การรวมได้

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