使用关键字过滤多维JS数组

时间:2016-10-22 20:25:27

标签: javascript jquery

我有一个如下所示的数组:

[['place', '1', '-2'],['place2', '1', '-2'],['place3', '1', '-3']]

我想使用onClick中的关键字对其进行过滤,因此它看起来像这样:

[['place', '1', '-2'],['place2', '1', '-2']]

如果我的过滤器是例如-2。

我现在使用的代码是(其中object是被过滤的变量):

return $.map(object, function (item, key) {
   if (item[0] === value) {
       return item;
   }
});

然后我用它来调用它:

var markers = results(filter);

但我得到的结果是空白的。

希望我有意义,如果不是我很抱歉请告诉我,我可以尝试澄清。

2 个答案:

答案 0 :(得分:0)

试试这个

    var places = [['place', '1', '-2'],['place2', '1', '-2'],['place3', '1', '-3']]
    var result = places.filter(place => place[2] === '-2')

    console.log(result) // [['place', '1', '-2'],['place2', '1', '-2']]

答案 1 :(得分:0)

您可以使用Array#filter并返回已过滤的项目。

var data = [['place', '1', '-2'], ['place2', '1', '-2'], ['place3', '1', '-3']],
    filtered = data.filter(function (a) {
        return a[2] === '-2';
    });

console.log(filtered);

搜索具有给定字符串的任何项目

var data = [['place', '1', '-2'], ['place2', '1', '-2'], ['place3', '1', '-3']],
    filtered = data.filter(function (a) {
        return a.some(function (b) {
            return b === '-2';
        });
    });

console.log(filtered);

ES6,搜索具有给定字符串的任何项目

var data = [['place', '1', '-2'], ['place2', '1', '-2'], ['place3', '1', '-3']],
    filtered = data.filter(a => a.some(b => b === '-2'));

console.log(filtered);