gpt4 book ai didi

javascript - 从重复的 javascript 数组结果集中仅获取一行

转载 作者:行者123 更新时间:2023-12-02 14:38:49 28 4
gpt4 key购买 nike

我有以下文本文件stops.txt

stop_id,stop_code,stop_name,stop_lat,stop_lon,zone_id,stop_url,location_type,parent_station,platform_code,wheelchair_boarding
70011,70011,San Francisco Caltrain,37.77639,-122.394992,1,http://www.caltrain.com/stations/sanfranciscostation.html,0,ctsf,NB,1
70012,70012,San Francisco Caltrain,37.776348,-122.394935,1,http://www.caltrain.com/stations/sanfranciscostation.html,0,ctsf,SB,1
70021,70021,22nd St Caltrain,37.757599,-122.39188,1,http://www.caltrain.com/stations/22ndstreetstation.html,0,ct22,NB,2
70022,70022,22nd St Caltrain,37.757583,-122.392404,1,http://www.caltrain.com/stations/22ndstreetstation.html,0,ct22,SB,2

这是我的 JavaScript 函数,用于将 stop_names 索引获取到 datalist:

get('../data/stops.txt').then(function(response) {
//console.log("Success!", response.split(/(\r\n|\n)/));
var stop_list = response.split(/(\r\n|\n)/);
var re = /,/;
var headers = stop_list.shift().split(re);
var index = headers.indexOf("stop_name");
//Removing [index] at return val.split(re)[index]; should return an array of arrays of each split value
var res = stop_list.map(function(val, key) {
return val.split(re)[index];
}).filter(Boolean);

var str = '';
var i;
for (i = 0; i < res.length; i++) {
str += '<option value="'+res[i]+'" />';
}
var s_list=document.getElementById("slist");
s_list.innerHTML = str;
}, function(error) {
console.error("Failed!", error);
});

这非常完美。但由于第一行与第 2 行具有相同的停靠点名称。

我想要的是如果stop_name和plate_form相同,则只得到一个stop_name的结果集。

最佳答案

您需要做的就是在定义 res 时将过滤器添加到链的末尾以删除重复值。这个问题已经解决了几次:Unique values in an array

它看起来像这样:

var res = stop_list
.map(function(val, key) {
return val.split(re)[index];
})
.filter(function(value, index, self) {
return self.indexOf(value) === index;
});

关于javascript - 从重复的 javascript 数组结果集中仅获取一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200429/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com