Javascript 基于范围和选定索引值分析数组
我有一个嵌套数组,它有长度为6的子数组和字符串值。我还有两个变量具有如下浮点值:Javascript 基于范围和选定索引值分析数组,javascript,arrays,parsing,filter,Javascript,Arrays,Parsing,Filter,我有一个嵌套数组,它有长度为6的子数组和字符串值。我还有两个变量具有如下浮点值: var test_array =[["06101123", "0", "0.2", "34011", "Cumberland", "Local", "Fernwood Avenue"], ["02271163", "0.1", &qu
var test_array =[["06101123", "0", "0.2", "34011", "Cumberland", "Local", "Fernwood Avenue"],
["02271163", "0.1", "0.22", "34003", "Bergen", "Local", "Fernwood Avenue"],
["04351186", "0.3", "0.59", "34007", "Camden", "Local", "Fernwood Avenue"],
["07131150", "0", "0.3", "34013", "Essex", "Local", "Beacon Street"],
["03041026", "0", "0.13", "34005", "Burlington", "Local", "Beacon Street"],
["20121109", "0.18", "0.43", "34039", "Union", "Local", "Jones Lane"],
["15141139", "0", "0.27", "34029", "Ocean", "Local", "Jones Lane"]];
var pt_one=0.1;
var pt_two=0.59;
var street=“芬伍德大道”
我想用pt_1和pt_2作为低-高范围。我想迭代子数组并创建一个新数组,其中子数组[1]等于或大于pt_-one,子数组[2]小于或等于pt_-two,子数组[6]=street,并将该数组推到一个新的数组中。例如,此场景中的输出为:
new_array =[["02271163", "0.1", "0.22", "34003", "Bergen", "Local", "Fernwood Avenue"],
["04351186", "0.3", "0.59", "34007", "Camden", "Local", "Fernwood Avenue"]];
如何实现这一点?这是一个基本的filter()操作,您可以在其中检查每个条件
var pt_one=0.1;var pt_two=0.59;var street=“芬伍德大道”;
var测试_数组=[[“06101123”、“0”、“0.2”、“34011”、“坎伯兰”、“本地”、“弗恩伍德大道”],
[“02271163”、“0.1”、“0.22”、“34003”、“卑尔根”、“本地”、“芬伍德大道”],
[“04351186”、“0.3”、“0.59”、“3407”、“卡姆登”、“本地”、“芬伍德大道”],
[“07131150”、“0”、“0.3”、“34013”、“埃塞克斯”、“当地”、“比肯街”],
[“03041026”、“0”、“0.13”、“34005”、“伯灵顿”、“本地”、“比肯街”],
[“20121109”、“0.18”、“0.43”、“34039”、“联合”、“本地”、“琼斯巷”],
[“15141139”、“0”、“0.27”、“34029”、“海洋”、“本地”、“琼斯巷”];
常量res=test_array.filter(arr=>{
return arr[6]===street&&arr[1]>=pt\u one&&arr[2]这是一个基本的filter()操作,您可以在其中检查每个条件
var pt_one=0.1;var pt_two=0.59;var street=“Fernwood Avenue”;
var测试_数组=[[“06101123”、“0”、“0.2”、“34011”、“坎伯兰”、“本地”、“弗恩伍德大道”],
[“02271163”、“0.1”、“0.22”、“34003”、“卑尔根”、“本地”、“芬伍德大道”],
[“04351186”、“0.3”、“0.59”、“3407”、“卡姆登”、“本地”、“芬伍德大道”],
[“07131150”、“0”、“0.3”、“34013”、“埃塞克斯”、“当地”、“比肯街”],
[“03041026”、“0”、“0.13”、“34005”、“伯灵顿”、“本地”、“比肯街”],
[“20121109”、“0.18”、“0.43”、“34039”、“联合”、“本地”、“琼斯巷”],
[“15141139”、“0”、“0.27”、“34029”、“海洋”、“本地”、“琼斯巷”];
常量res=test_array.filter(arr=>{
使用filter
返回arr[6]===street&&arr[1]>=pt\u one&&arr[2],这还检查比较中的类型
编号以及street上的大写/空白问题
var测试\u数组=[
[“06101123”、“0”、“0.2”、“34011”、“坎伯兰”、“当地”、“芬伍德大道”],
[“02271163”、“0.1”、“0.22”、“34003”、“卑尔根”、“本地”、“芬伍德大道”],
[“04351186”、“0.3”、“0.59”、“3407”、“卡姆登”、“本地”、“芬伍德大道”],
[“07131150”、“0”、“0.3”、“34013”、“埃塞克斯”、“当地”、“比肯街”],
[“03041026”、“0”、“0.13”、“34005”、“伯灵顿”、“本地”、“比肯街”],
[“20121109”、“0.18”、“0.43”、“34039”、“联合”、“本地”、“琼斯巷”],
[“15141139”、“0”、“0.27”、“34029”、“海洋”、“本地”、“琼斯巷”]
];
功能findIt(低、高、街道){
返回测试数组.filter(el=>
+el[1]>=low&&+el[2]使用过滤器
,这也会检查比较中的类型
编号以及街道上的大写/空白问题
var测试\u数组=[
[“06101123”、“0”、“0.2”、“34011”、“坎伯兰”、“当地”、“芬伍德大道”],
[“02271163”、“0.1”、“0.22”、“34003”、“卑尔根”、“本地”、“芬伍德大道”],
[“04351186”、“0.3”、“0.59”、“3407”、“卡姆登”、“本地”、“芬伍德大道”],
[“07131150”、“0”、“0.3”、“34013”、“埃塞克斯”、“当地”、“比肯街”],
[“03041026”、“0”、“0.13”、“34005”、“伯灵顿”、“本地”、“比肯街”],
[“20121109”、“0.18”、“0.43”、“34039”、“联合”、“本地”、“琼斯巷”],
[“15141139”、“0”、“0.27”、“34029”、“海洋”、“本地”、“琼斯巷”]
];
功能findIt(低、高、街道){
返回测试数组.filter(el=>
+el[1]>=low&&+el[2]这两种解决方案都很好。我喜欢这会将街道名称修剪并设置为小写。有一点我不明白(尽管该解决方案有效),那就是低值和高值都是数字,test_数组[1]和[2]都是字符串值。我实际上是使用parseFlot(test_数组[1])运行它的…在代码中,它失败了,但完全按照上面的方法使用它,没有问题。这两种解决方案都很好。我喜欢这样做,即将街道名称修剪为小写。有一点我不明白(尽管解决方案有效),即低值和高值都是数字,而test_数组[1]和[2]是字符串值。实际上,我在代码中使用parseFlot(test_array[1])…运行了它,但失败了,但完全按照上面的方法使用,没有问题。