【问题标题】:Implement search filter for multidimensional array实现多维数组的搜索过滤器
【发布时间】:2020-05-05 14:05:02
【问题描述】:

我正在尝试在多维数组中实现搜索。

这是我的数组

var data= [ [1, "TEST", "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"]]

我怎样才能做到这一点?

【问题讨论】:

  • 什么是填充标准?
  • 使用模式和匹配器
  • @brijesh 我很确定PatternMatcher只存在于Java中,这里的Java标签放错了

标签: javascript arrays angular multidimensional-array


【解决方案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())
        })
    })
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 2011-09-06
    • 2021-06-24
    • 1970-01-01
    • 2017-04-06
    • 2019-07-03
    • 2020-05-30
    相关资源
    最近更新 更多