如何基于公共值合并2个tsv文件(在javascript中)

时间:2014-06-22 12:36:55

标签: javascript d3.js tsv

我有2个tsv文件(tec00104.tsv& tec00114.tsv),其中包含有关国家/地区的信息。我想用两个tsv文件中的公共国家制作一个单独的数组。以及随之而来的价值观。这似乎不起作用,为什么?

// initialize array  
var countries = [];
for(var i = 0; i < "tec00114.tsv".length; i++)
{
for(var j = 0; j < "tec00104.tsv".length; j++)

    {
    // if the country code is found in both tsv files
        if("tec00114.tsv"[i][2] === "tec00104.tsv"[j][3]);
        {
        // append new value to the array
            countries.push("tec00114.tsv"[i]);
            countries.push("tec00104.tsv"[j]);
        }
    }
 }
console.log(countries);

1 个答案:

答案 0 :(得分:0)

问题是,您尝试直接从JavaScript引用文件名作为数组。这是不可能的。您需要先加载它们(例如,您可以使用$ .get()函数)。

或者您可以使用Alasql库。

<script src="alasql.min.js"></script>
<script>
    var countries = alasql('SELECT t1.*, t2.* FROM TSV("tec00114.tsv") t1 \
        JOIN TSV("tec00104.tsv") t2 ON t1.[2] = t2.[3]'); 
</script>

如果您的TSV文件有标题,请使用“headers:true”选项,如下所示:

SELECT * FROM TSV("tex00114.tsv", {headers:true});