【发布时间】:2021-08-04 18:03:11
【问题描述】:
我有一个如下所示的嵌套数组:
var nested_array = [
["18081163__,0,0.15,15238", "0", "0.15", "Somerset", "Local", "Norfolk Road"],
["18081165__,0.7,0.25,15239", "0", "0.15", "Somerset", "State", "Norfolk Road"],
["18081153__,0.1,0.25,15240", "0.1", "0.25", "Cumberland", "Local", "Potter Terrace"],
["18081164__,1.1,2.25,15241", "1.1", "2.25", "Cumberland", "State", "Jones Street"]
]
在每个子数组中,索引 3 = 县,索引 4 = road_type,索引 5 = road_name。在我的应用程序中,用户必须选择 road_name。我创建了一个简单的函数,它接受值并返回一个嵌套数组,其中包含包含该值的子数组:
function array_parser(old_array, key_word) {
let new_array = [];
for (let i = 0; i < old_array.length; i++) {
if (old_array[i].includes(key_word)) {
new_array.push(old_array[i]);
}
}
return new_array;
}
这适用于单个值,但我希望用户也可以选择县和道路类型。如果他们这样做,我想成为一个过滤器并根据值列表/数组返回一个数组:
key_words = ["Somerset", "Norfolk Road"]
或
key_words = ["Somerset", "Local", "Norfolk Road"]
如何做到这一点?
【问题讨论】:
-
快速提问,这些关键字没有约束吗?如果真的有一条与州同名的道路呢?这也是解析数组中的有效包含吗?
-
因此,对于 road_type(索引 4),它们基于有限的下拉列表或选择:[州、本地、州际、其他]。 road_names(索引 5)都将有 Road、Street、Lane 等......或者会像 US-95 或其他东西,所以即使道路名称是“State Street”,道路类型是“State”,我认为这不是问题(尽管也许我错了。
标签: javascript arrays filter include