我有一个如下所示的数组:
[['place', '1', '-2'],['place2', '1', '-2'],['place3', '1', '-3']]
我想使用 onClick 中的关键字过滤它,所以它看起来像这样:
[['place', '1', '-2'],['place2', '1', '-2']]
如果我的过滤器是-2。
我现在使用的代码是(其中对象是被过滤的变量):
return $.map(object, function (item, key) {
if (item[0] === value) {
return item;
}
});
然后我使用以下方式调用它:
var markers = results(filter);
但是我得到的结果是空白的。
希望我说得有道理,如果不是,我很抱歉,请告诉我,我可以尝试澄清。
最佳答案
您可以使用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);
关于javascript - 使用关键字过滤多维 JS 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40196706/